Systems and methods for flight simulation

ABSTRACT

Systems and methods are provided for training a user to control an unmanned aerial vehicle (UAV) in an environment. The systems and methods provide a simulation environment to control a UAV in a virtual environment. The virtual environment closely resembles a real flight environment. The controller used to transmit flight commands and receive flight state data can be used in both simulation and flight modes of operation.

CROSS-REFERENCE

This application is a continuation application of InternationalApplication No. PCT/CN2014/088051, filed on Sep. 30, 2014, the contentof which is hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

Aerial vehicles such as unmanned aerial vehicles (UAVs) can travel alongdefined routes. UAVs can be controlled entirely or partially by a useroff-board the UAV. A user can practice controlling a UAV using asimulation that depicts a UAV in a simulated environment in response toflight control commands from a user.

Learning to control a UAV can be difficult. Failure to properly controla UAV can result in damage to the UAV. Repairing damage to the UAV canbe time consuming and expensive therefore it may be advantageous toteach a user to control a UAV in a virtual environment where a real UAVis not at risk of damage.

SUMMARY OF THE INVENTION

A need exists to provide a method of training a user to control flightof an unmanned aerial vehicle (UAV) in a simulated environment. Providedherein are systems and methods to generate a simulated virtualenvironment for flying and controlling actions of a UAV. The simulationuses an identical remote controller as is used in real flight of the UAVsuch that a user can become familiar with the control functions andsensitivity in a virtual environment and translate these factorsdirectly to real flight of the UAV. A flight control system is providedto process and transmit data from virtual sensors to a simulation. Theflight control system can be an identical flight control system to theflight control system used in real flight. A physical model cancalculate responses to flight control input from a user and provide theresponse to a virtual sensor to generate a virtual sensor measurement.The flight control system can communicate flight state data to a displaydevice through a direct connection or an indirect connection. Thedisplay device can provide the flight state data to a user through animage and/or textual display. The display device can provide the flightstate data to a user and communicate with either or both of the remotecontroller and the flight control system using a software application(i.e. “app”). The flight control system can be on-board the UAV oron-board the display device.

An aspect of the invention is directed to a method of operating anunmanned aerial vehicle (UAV). The method may comprise receiving a UAVmode signal indicative of whether the UAV is to be in a flight mode orsimulation mode; receiving, at a flight control system on-board the UAV,flight control data from a remote controller; and generating, at theflight control system, flight data in response to the flight controldata from the remote controller. The flight data can be (1) communicatedto one or more propulsion units of the UAV when the UAV is in flightmode and can be (2) not communicated to the one or more propulsion unitsof the UAV when the UAV is in simulation mode.

In some embodiments the UAV mode signal can be provided from a displaydevice comprising a visual display. The display device can be a mobiledevice. The visual display can be configured to show simulated flightstate information of the UAV when the UAV is in a simulation mode.

In some cases the UAV mode signal can be provided from the remotecontroller. The UAV mode signal can be provided by a user interactingwith hardware of the UAV. The UAV can have the flight mode as a defaultand the UAV mode signal can indicate a change to the simulation mode.The UAV mode signal can be provided to an output switcher configured todetermine whether the flight data is or is not communicated to the oneor more propulsion units. The output switcher can communicate with theflight data to the one or more propulsion units when the UAV is inflight mode.

In some embodiments, the output switcher can communicate the flight datato a physical model comprising physical parameter information about theUAV. The physical model can provide physical simulation data in responseto the flight data. The physical parameter information about the UAV caninclude dimensions of the UAV. The physical parameter information aboutthe UAV can include aerodynamic properties of the UAV.

The physical simulation data can be provided to one or more virtualsensors configured to generate virtual sensor data based on the physicalsimulation data. The virtual sensor data can be provided to an inertialmeasurement unit configured to generate flight state information fromthe virtual sensor data and communicate the flight state information tothe flight control system. The inertial measurement unit can beconfigured to receive real sensor data and generate flight stateinformation from the real sensor data and communicate the flight stateinformation to the flight control system. The flight control system cancommunicate simulated flight data to a display device comprising avisual display when the UAV is in the simulation mode.

Another aspect of the invention is directed to an unmanned aerialvehicle (UAV). The UAV can comprise: a receiver, configured to receive aUAV mode signal indicative of whether the UAV is to be in a flight modeor simulation mode; a flight control system configured to (1) receiveflight control data from a remote controller, and (2) generate flightdata in response to the flight control data; and one or more propulsionunits configured to (1) actuate and permit flight of the UAV when theUAV is in a flight mode, or (2) remain dormant and not permit flight ofthe UAV when the UAV is in a simulation mode.

In some embodiments the UAV mode signal can be provided from a displaydevice comprising a visual display. The display device can be a mobiledevice. The visual display can be configured to show simulated flightstate information of the UAV when the UAV is in a simulation mode.

In some cases the UAV mode signal can be provided from the remotecontroller. The UAV mode signal can be provided by a user interactingwith hardware of the UAV. The UAV can have the flight mode as a defaultand the UAV mode signal can indicate a change to the simulation mode.The UAV mode signal can be provided to an output switcher configured todetermine whether the flight data is or is not communicated to the oneor more propulsion units. The output switcher can communicate with theflight data to the one or more propulsion units when the UAV is inflight mode.

In some embodiments, the output switcher can communicate the flight datato a physical model comprising physical parameter information about theUAV. The physical model can provide physical simulation data in responseto the flight data. The physical parameter information about the UAV caninclude dimensions of the UAV. The physical parameter information aboutthe UAV can include aerodynamic properties of the UAV.

The physical simulation data can be provided to one or more virtualsensors configured to generate virtual sensor data based on the physicalsimulation data. The virtual sensor data can be provided to an inertialmeasurement unit configured to generate flight state information fromthe virtual sensor data and communicate the flight state information tothe flight control system. The inertial measurement unit can beconfigured to receive real sensor data and generate flight stateinformation from the real sensor data and communicate the flight stateinformation to the flight control system. The flight control system cancommunicate simulated flight data to a display device comprising avisual display when the UAV is in the simulation mode.

In another aspect the invention is directed to a method of operating anunmanned aerial vehicle (UAV), said method comprising: receiving a UAVmode signal indicative of whether the UAV is to be in a flight mode orsimulation mode; receiving, at a flight control system on-board the UAV,flight control data from a remote controller; and generating, at theflight control system, flight data in based on: (1) the flight controldata from the remote controller and (2) one of the following: (a) realsensor data collected by physical sensors on-board the UAV when the UAVis in the flight mode, or (b) virtual sensor data generated by one ormore processors when the UAV is in the simulation mode.

In some embodiments the UAV mode signal can be provided from a displaydevice comprising a visual display. The display device can be a mobiledevice. The visual display can be configured to show simulated flightstate information of the UAV when the UAV is in a simulation mode.

In some cases the UAV mode signal can be provided from the remotecontroller. The UAV mode signal can be provided by a user interactingwith hardware of the UAV. The UAV can have the flight mode as a defaultand the UAV mode signal can indicate a change to the simulation mode.The UAV mode signal can be provided to an output switcher configured todetermine whether the flight data is or is not communicated to the oneor more propulsion units. The output switcher can communicate with theflight data to the one or more propulsion units when the UAV is inflight mode.

In some embodiments, the output switcher can communicate the flight datato a physical model comprising physical parameter information about theUAV. The physical model can provide physical simulation data in responseto the flight data. The physical parameter information about the UAV caninclude dimensions of the UAV. The physical parameter information aboutthe UAV can include aerodynamic properties of the UAV.

The physical simulation data can be provided to one or more virtualsensors configured to generate virtual sensor data based on the physicalsimulation data. The virtual sensor data can be provided to an inertialmeasurement unit configured to generate flight state information fromthe virtual sensor data and communicate the flight state information tothe flight control system. The inertial measurement unit can beconfigured to receive real sensor data and generate flight stateinformation from the real sensor data and communicate the flight stateinformation to the flight control system. The flight control system cancommunicate simulated flight data to a display device comprising avisual display when the UAV is in the simulation mode.

Another aspect of the invention can provide an unmanned aerial vehicle(UAV) comprising: a receiver, configured to receive a UAV mode signalindicative of whether the UAV is to be in a flight mode or simulationmode; one or more sensors configured to collect real sensor data; aflight control system configured to (1) receive flight control data froma remote controller, and (2) generate flight data in response to (a) theflight control data and (b) one of the following: (i) the real sensordata when the UAV is in flight mode, or (ii) virtual sensor datagenerated by one or more processors when the UAV is in the simulationmode.

In some embodiments the UAV mode signal can be provided from a displaydevice comprising a visual display. The display device can be a mobiledevice. The visual display can be configured to show simulated flightstate information of the UAV when the UAV is in a simulation mode.

In some cases the UAV mode signal can be provided from the remotecontroller. The UAV mode signal can be provided by a user interactingwith hardware of the UAV. The UAV can have the flight mode as a defaultand the UAV mode signal can indicate a change to the simulation mode.The UAV mode signal can be provided to an output switcher configured todetermine whether the flight data is or is not communicated to the oneor more propulsion units. The output switcher can communicate with theflight data to the one or more propulsion units when the UAV is inflight mode.

In some embodiments, the output switcher can communicate the flight datato a physical model comprising physical parameter information about theUAV. The physical model can provide physical simulation data in responseto the flight data. The physical parameter information about the UAV caninclude dimensions of the UAV. The physical parameter information aboutthe UAV can include aerodynamic properties of the UAV.

The physical simulation data can be provided to one or more virtualsensors configured to generate virtual sensor data based on the physicalsimulation data. The virtual sensor data can be provided to an inertialmeasurement unit configured to generate flight state information fromthe virtual sensor data and communicate the flight state information tothe flight control system. The inertial measurement unit can beconfigured to receive real sensor data and generate flight stateinformation from the real sensor data and communicate the flight stateinformation to the flight control system. The flight control system cancommunicate simulated flight data to a display device comprising avisual display when the UAV is in the simulation mode.

An aspect of the invention can provide a method of operating a flightsimulator, said method comprising: receiving, at a display device,simulated flight data from a flight control system on-board an unmannedaerial vehicle (UAV) when the UAV is in a simulation mode, wherein thesimulated flight data is provided to the display device via a remotecontroller configured to (1) communicate with and (2) control flight ofthe UAV when the UAV is in a flight mode; and displaying, on a visualdisplay of the display device, simulated flight state information of theUAV in response to the simulated flight data.

In some embodiments the display device can be a mobile device. Theremote controller can communicate with the display device via a wiredconnection. The remote controller can communicate with the displaydevice via a wireless connection. The remote controller can beconfigured to provide flight control data useful for generating thesimulated flight data on-board the UAV when the UAV is in the simulationmode. The remote controller can include one or more joystick controlsuseful for controlling flight of the UAV when the UAV is in flight mode.

In some embodiments, the simulated flight data can originate from theflight control system on-board the UAV. The simulated flight data can bemodified by the remote controller. The simulated flight data may not bemodified by the remote controller.

In some cases the flight control system can receive virtual sensor datafrom one or more virtual sensors when the UAV is in the simulation modeand uses the virtual sensor data to generate the simulated flight data.The visual display can be a touchscreen. The simulated flight stateinformation can include an image of the UAV relative to a simulatedenvironment. The image can be an animation and the simulated environmentis a three-dimensional environment.

In another aspect the invention can provide a non-transitory computerreadable media comprising program instructions for performing a flightsimulation, said non-transitory computer readable media comprising:program instructions for receiving, at a display device, simulatedflight data from a flight control system on-board an unmanned aerialvehicle (UAV) when the UAV is in a simulation mode, wherein thesimulated flight data is provided to the display device via a remotecontroller configured to (1) communicate with and (2) control flight ofthe UAV when the UAV is in a flight mode; and program instructions fordisplaying, on a visual display of the display device, simulated flightstate information of the UAV in response to the simulated flight data.

In some embodiments the display device can be a mobile device. Theremote controller can communicate with the display device via a wiredconnection. The remote controller can communicate with the displaydevice via a wireless connection. The remote controller can beconfigured to provide flight control data useful for generating thesimulated flight data on-board the UAV when the UAV is in the simulationmode. The remote controller can include one or more joystick controlsuseful for controlling flight of the UAV when the UAV is in flight mode.

In some embodiments, the simulated flight data can originate from theflight control system on-board the UAV. The simulated flight data can bemodified by the remote controller. The simulated flight data may not bemodified by the remote controller.

In some cases the flight control system can receive virtual sensor datafrom one or more virtual sensors when the UAV is in the simulation modeand uses the virtual sensor data to generate the simulated flight data.The visual display can be a touchscreen. The simulated flight stateinformation can include an image of the UAV relative to a simulatedenvironment. The image can be an animation and the simulated environmentis a three-dimensional environment.

Another aspect of the invention can provide, A method of operating aflight simulator, said method comprising: receiving, at a flight controlsystem on-board an unmanned aerial vehicle (UAV) when the UAV is insimulation mode, flight control data from a remote controller configuredto (1) communicate with and (2) control flight of the UAV when the UAVis in flight mode; generating, at the flight control system, simulatedflight data in response to the flight control data from the remotecontroller; and transmitting, to the remote controller, the simulatedflight data from the flight control system.

In some embodiments the image is an animation and the simulatedenvironment is a three-dimensional environment.

The flight control system can be further configured to (3) generate oneor more flight signal to be communicated to the one or more propulsionunits when the UAV in flight mode.

In some cases, the remote controller is configured to transmit thesimulated flight data to a display device comprising a visual display.The display device can be a mobile device. The remote controller cancommunicate with the display device via a wireless connection. Thevisual display can show simulated flight state information of the UAV.The simulated flight state information can include an image of the UAVrelative to a simulated environment. The remote controller can includeone or more joystick controls useful for controlling flight of the UAV.

The flight control system can receive virtual sensor data from one ormore virtual sensors when the UAV is in the simulation mode and uses thevirtual sensor data to generate the simulated flight data. In somecases, the method can further comprise an inertial measurement unitconfigured to receive the virtual sensor data and generate flight stateinformation from the virtual sensor data, and configured to transmit theflight state information to the flight control system when the UAV is ina flight simulation mode. The inertial measurement unit can beconfigured to receive real sensor data and generate flight stateinformation from the real sensor data, and configured to transmit theflight state information to the flight control system when the UAV is ina flight mode. The flight control system can provide the flight controldata to a physical model comprising physical parameter information aboutthe UAV, and wherein the physical model provides physical simulationdata to the virtual sensors in response to the flight control data.

In another aspect, the invention can provide an unmanned aerial vehicle(UAV) comprising: a flight control system configured to (1) receiveflight control data from a remote controller, and (2) generate simulatedflight data in response to the flight control data when the UAV is in asimulation mode; one or more propulsion units configured to (1) actuateand permit flight of the UAV when the UAV is in a flight mode, or (2)remain dormant and not permit flight of the UAV when the UAV is in asimulation mode; and a communication unit configured to transmit thesimulated flight data to the remote controller.

In some embodiments the image is an animation and the simulatedenvironment is a three-dimensional environment.

The flight control system can be further configured to (3) generate oneor more flight signal to be communicated to the one or more propulsionunits when the UAV in flight mode.

In some cases, the remote controller is configured to transmit thesimulated flight data to a display device comprising a visual display.The display device can be a mobile device. The remote controller cancommunicate with the display device via a wireless connection. Thevisual display can show simulated flight state information of the UAV.The simulated flight state information can include an image of the UAVrelative to a simulated environment. The remote controller can includeone or more joystick controls useful for controlling flight of the UAV.

The flight control system can receive virtual sensor data from one ormore virtual sensors when the UAV is in the simulation mode and uses thevirtual sensor data to generate the simulated flight data. In somecases, the UAV can further comprise an inertial measurement unitconfigured to receive the virtual sensor data and generate flight stateinformation from the virtual sensor data, and configured to transmit theflight state information to the flight control system when the UAV is ina flight simulation mode. The inertial measurement unit can beconfigured to receive real sensor data and generate flight stateinformation from the real sensor data, and configured to transmit theflight state information to the flight control system when the UAV is ina flight mode. The flight control system can provide the flight controldata to a physical model comprising physical parameter information aboutthe UAV, and wherein the physical model provides physical simulationdata to the virtual sensors in response to the flight control data.

In another aspect the invention can provide a method of operating aflight simulator, said method comprising: receiving, at a displaydevice, simulated flight data from a flight control system on-board anunmanned aerial vehicle (UAV) when the UAV is in a simulation mode,wherein the simulated flight data is provided to the display device viathe UAV, and wherein the UAV is configured to communicate with a remotecontroller configured to control flight of the UAV when the UAV is in aflight mode; and displaying, on a visual display of the display device,simulated flight state information of the UAV in response to thesimulated flight data.

The display device can be a mobile device. The remote controller can beconfigured to provide flight control data useful for generating thesimulated flight data on-board the UAV when the UAV is in the simulationmode. The remote controller can include one or more joystick controlsuseful for controlling flight of the UAV when the UAV is in flight mode.The remote controller can be configured to control actuation of acarrier that holds a payload of the UAV when the UAV is in flight mode.

The flight control system can receive virtual sensor data from one ormore virtual sensors when the UAV is in the simulation mode and uses thevirtual sensor data to generate the simulated flight data.

In some embodiments the visual display can be a touch screen. Thesimulated flight state information can include an image of the UAVrelative to a simulated environment. The image can be an animation andthe simulated environment can be a three-dimensional environment.

In another aspect the invention can provide, A non-transitory computerreadable media comprising program instructions for performing a flightsimulation, said non-transitory computer readable media comprising:program instructions for receiving, at a display device, simulatedflight data from a flight control system on-board an unmanned aerialvehicle (UAV) when the UAV is in a simulation mode, wherein thesimulated flight data is provided to the display device via the UAV, andwherein the UAV is configured to communicate with a remote controllerconfigured to control flight of the UAV when the UAV is in a flightmode; and program instructions for displaying, on a visual display ofthe display device, simulated flight state information of the UAV inresponse to the simulated flight data.

The display device can be a mobile device. The remote controller can beconfigured to provide flight control data useful for generating thesimulated flight data on-board the UAV when the UAV is in the simulationmode. The remote controller can include one or more joystick controlsuseful for controlling flight of the UAV when the UAV is in flight mode.The remote controller can be configured to control actuation of acarrier that holds a payload of the UAV when the UAV is in flight mode.

The flight control system can receive virtual sensor data from one ormore virtual sensors when the UAV is in the simulation mode and uses thevirtual sensor data to generate the simulated flight data.

In some embodiments the visual display can be a touch screen. Thesimulated flight state information can include an image of the UAVrelative to a simulated environment. The image can be an animation andthe simulated environment can be a three-dimensional environment.

In another aspect the invention can provide a method of operating aflight simulator, said method comprising: receiving, at a flight controlsystem on-board an unmanned aerial vehicle (UAV) when the UAV is insimulation mode, flight control data from a remote controller configuredto (1) communicate with and (2) control flight of the UAV when the UAVis in flight mode; generating, at the flight control system, simulatedflight data in response to the flight control data from the remotecontroller; and transmitting, to a display device comprising a visualdisplay, the simulated flight data from the flight control system.

In some cases, the flight control system can be further configured to(3) generate one or more flight signal to be communicated to the one ormore propulsion units when the UAV in flight mode. The remote controllercan be configured to transmit the simulated flight data to a displaydevice comprising a visual display. The display device can be a mobiledevice. The remote controller can communicate with the display devicevia a wireless connection. The visual display can show simulated flightstate information of the UAV. The simulated flight state information caninclude an image of the UAV relative to a simulated environment.

In some embodiments the remote controller can include one or morejoystick controls useful for controlling flight of the UAV. The flightcontrol system can receive virtual sensor data from one or more virtualsensors when the UAV is in the simulation mode and uses the virtualsensor data to generate the simulated flight data.

In some cases the method can further comprise an inertial measurementunit configured to receive the virtual sensor data and generate flightstate information from the virtual sensor data, and configured totransmit the flight state information to the flight control system whenthe UAV is in a flight simulation mode. The inertial measurement unitcan be configured to receive real sensor data and generate flight stateinformation from the real sensor data, and configured to transmit theflight state information to the flight control system when the UAV is ina flight mode. The flight control system can provide the flight controldata to a physical model comprising physical parameter information aboutthe UAV, and wherein the physical model provides physical simulationdata to the virtual sensors in response to the flight control data.

Another aspect of the invention can provide an unmanned aerial vehicle(UAV) comprising: a flight control system configured to (1) receiveflight control data from a remote controller, and (2) generate simulatedflight data in response to the flight control data when the UAV is in asimulation mode; one or more propulsion units configured to (1) actuateand permit flight of the UAV when the UAV is in a flight mode, or (2)remain dormant and not permit flight of the UAV when the UAV is in asimulation mode; and a communication unit configured to transmit thesimulated flight data to a display device comprising a visual display.

In some cases, the flight control system can be further configured to(3) generate one or more flight signal to be communicated to the one ormore propulsion units when the UAV in flight mode. The remote controllercan be configured to transmit the simulated flight data to a displaydevice comprising a visual display. The display device can be a mobiledevice. The remote controller can communicate with the display devicevia a wireless connection. The visual display can show simulated flightstate information of the UAV. The simulated flight state information caninclude an image of the UAV relative to a simulated environment.

In some embodiments the remote controller can include one or morejoystick controls useful for controlling flight of the UAV. The flightcontrol system can receive virtual sensor data from one or more virtualsensors when the UAV is in the simulation mode and uses the virtualsensor data to generate the simulated flight data.

In some cases the UAV can further comprise an inertial measurement unitconfigured to receive the virtual sensor data and generate flight stateinformation from the virtual sensor data, and configured to transmit theflight state information to the flight control system when the UAV is ina flight simulation mode. The inertial measurement unit can beconfigured to receive real sensor data and generate flight stateinformation from the real sensor data, and configured to transmit theflight state information to the flight control system when the UAV is ina flight mode. The flight control system can provide the flight controldata to a physical model comprising physical parameter information aboutthe UAV, and wherein the physical model provides physical simulationdata to the virtual sensors in response to the flight control data.

Another aspect of the invention can provide a method of operating aflight simulator, said method comprising: receiving, at a flight controlsystem, a flight control signal generated by a remote controller capableof communicating with and controlling flight of an unmanned aerialvehicle (UAV), wherein the flight control signal includes a command fora predetermined flight sequence of the UAV; generating, at the flightcontrol system, simulated flight data for execution of the predeterminedflight sequence of the UAV in response to the flight control signal; anddisplaying, on a visual display of a display device, simulated fightstate information of the UAV in response to the simulated flight data.

The flight control system can be on-board the display device. The flightcontrol system can be on-board the UAV. The predetermined flightsequence of the UAV can include an auto-return of the UAV to a startingpoint of the flight. The predetermined flight sequence of the UAV caninclude an autonomous take-off sequence of the UAV. The predeterminedflight sequence of the UAV includes an autonomous landing sequence ofthe UAV. The predetermined flight sequence of the UAV includes anautonomous hovering of the UAV. The predetermined flight sequence of theUAV may include a pose-keeping flying of the UAV.

In some cases, the display device can be a mobile device. The remotecontroller can communicate with the display device via a wiredconnection. The remove controller can communicate with the displaydevice through a wireless connection. The remote controller can includeone or more joystick controls useful for controlling flight of the UAVwhen the UAV is in flight mode.

In some embodiments the visual display can be a touchscreen. Thesimulated flight state information can include an image of the UAVrelative to a simulated environment. The image can be an animation andthe simulated environment can be a three-dimensional environment. Thedisplay device can provide a hint to a user of the display device toinitiate the predetermine flight sequence. The display device can beconfigured to receive a selection of a weather parameter, and thesimulated flight data can be generated based on the selected weatherparameter.

In another aspect the invention can provide A non-transitory computerreadable media comprising program instructions for performing a flightsimulation, said non-transitory computer readable media comprising:program instructions for receiving, at a flight control system, a flightcontrol signal generated by a remote controller capable of communicatingwith and controlling flight of an unmanned aerial vehicle (UAV), whereinthe flight control signal includes a command for a predetermined flightsequence of the UAV; program instructions for generating, at the flightcontrol system, simulated flight data for execution of the predeterminedflight sequence of the UAV in response to the flight control signal; andprogram instructions for displaying, on a visual display of a displaydevice, simulated fight state information of the UAV in response to thesimulated flight data.

The flight control system can be on-board the display device. The flightcontrol system can be on-board the UAV. The predetermined flightsequence of the UAV can include an auto-return of the UAV to a startingpoint of the flight. The predetermined flight sequence of the UAV caninclude an autonomous take-off sequence of the UAV. The predeterminedflight sequence of the UAV includes an autonomous landing sequence ofthe UAV. The predetermined flight sequence of the UAV includes anautonomous hovering of the UAV. The predetermined flight sequence of theUAV may include a pose-keeping flying of the UAV.

In some cases, the display device can be a mobile device. The remotecontroller can communicate with the display device via a wiredconnection. The remove controller can communicate with the displaydevice through a wireless connection. The remote controller can includeone or more joystick controls useful for controlling flight of the UAVwhen the UAV is in flight mode.

In some embodiments the visual display can be a touchscreen. Thesimulated flight state information can include an image of the UAVrelative to a simulated environment. The image can be an animation andthe simulated environment can be a three-dimensional environment. Thedisplay device can provide a hint to a user of the display device toinitiate the predetermine flight sequence. The display device can beconfigured to receive a selection of a weather parameter, and thesimulated flight data can be generated based on the selected weatherparameter.

Other objects and features of the present invention will become apparentby a review of the specification, claims, and appended figures.

INCORPORATION BY REFERENCE

All publications, patents, and patent applications mentioned in thisspecification are herein incorporated by reference to the same extent asif each individual publication, patent, or patent application wasspecifically and individually indicated to be incorporated by reference.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth with particularity inthe appended claims. A better understanding of the features andadvantages of the present invention will be obtained by reference to thefollowing detailed description that sets forth illustrative embodiments,in which the principles of the invention are utilized, and theaccompanying drawings of which:

FIG. 1 shows an example of hardware components than can be included in aflight simulation system.

FIG. 2 shows an example of a signal transmission pathway to change froma flight mode operation to a simulation mode operation.

FIG. 3 shows a simulation configured to input parameters to a physicalmodel pertaining to a first or second unmanned aerial vehicle (UAV).

FIG. 4 shows an overall signal transmission pathway for a simulation orflight mode operation.

FIG. 5 shows possible signal pathways between system components in asimulation mode operation.

FIG. 6 shows an example of a display on a display device duringsimulation mode operation.

FIG. 7 shows an example of a hint or warning that can be displayed to auser during simulation mode operation.

FIG. 8 illustrates an unmanned aerial vehicle, in accordance with anembodiment of the invention.

FIG. 9 illustrates a movable object including a carrier and a payload,in accordance with an embodiment of the invention.

FIG. 10 is a schematic illustration by way of block diagram of a systemfor controlling a movable object, in accordance with an embodiment ofthe invention.

DETAILED DESCRIPTION OF THE INVENTION

The systems, devices, and methods of the present invention providemechanisms training a user to fly and control an unmanned aerial vehicle(UAV) in a virtual environment. The skills obtained by the user fromflying the UAV in the virtual environment can be directly applicable toflying a UAV in a real environment. The systems, devices, and methods ofthe present invention further provide a simulation platform that employsat least some components that can be used for real flight of the UAV.Description of the UAV may be applied to any other type of unmannedvehicle, or any other type of movable object.

In some cases one or more functions of the UAV can be controlled atleast partially by an input from a user. The input from a user can beprovided to the UAV through a remote controller. Providing input tocontrol one or more functions of the UAV through a remote controller canbe difficult. In some cases a user that is unfamiliar with providinginput to control one or more functions of the UAV through a remotecontroller can fail to achieve a desired result using a remotecontroller. Failure to achieve a desired result using a remotecontroller can result in damage to the UAV and/or loss of the UAV in anunknown environment. It can be advantageous to provide a simulationexercise in which a user can train and practice controlling a virtualUAV in a virtual environment using a remote controller. The remotecontroller may be the same remote controller used to fly a UAV in a realflight environment.

A real flight environment can be an outdoor, indoor environment, ormixed outdoor and indoor environment where a UAV can be operated.Operation of the UAV can be flight or other locomotion of the UAV. Areal environment can exist in real time and space. A real environmentmay be tangible in a physical world. A virtual or simulated environmentcan be an environment that exists in a computer software structure. Thevirtual or simulated environment can be created from one or more inputsfrom a user, software developer, or information from a database. Avirtual or simulated environment can be a representation of anenvironment that exists in real space and time or an imaginaryenvironment that does not exist in real space and time. A virtual orsimulated environment can comprise defined boundaries, obstacles, andsurfaces. The virtual or simulated environment can have defined mediumto support flight of the UAV, for example, the medium can be air. Themedium can exist and be defined mathematically in the virtualenvironment. In some embodiments, the virtual environment does not existin the physical, tangible world.

A remote controller that is configured to control a virtual UAV in avirtual environment, simulation, can be the same or similar to acontroller that is used to control a real UAV in a real environment.Providing the same controller for use in both the simulation and thereal environment can result in a more realistic training experience fora user. A user can develop muscle memory associated with movement ormanipulation of a physical interface on a remote control. Providing anidentical remote controller in both a simulation and real flight mode ofa UAV can provide the advantage of utilizing the muscle memory formed inthe simulation mode for use in the real flight mode. Muscle memory canincrease reaction time, precision, and accuracy in flight mode.Providing the same controller for use in both the simulation and flightmode of the UAV can familiarize a user with the sensitivity of thecontrols on the remote control. For example, a user can become familiarwith the response time of the UAV to an input from the remote control.In another example, a user can become familiar with the magnitude of aresponse relative to movement of a physical interface on a remotecontrol. Additionally, a user can memorized the location of knobs,buttons, joysticks, and/or dials on a remote controller in simulationmode, in flight mode the memorized location of these components canincrease reaction time and therefore increase a user's ability tocontrol the UAV.

In some cases, a UAV can be configured to perform autonomous tasks. Anautonomous task can be initiated by a user. After an autonomous task isinitiated by a user a UAV may not require additional control or inputfrom a user while the autonomous task is performed. An autonomous taskmay cause a UAV to enter a predetermined sequence. The predeterminedsequence may include a series of actions that do not require user input.In an example, an autonomous task can be automatic return, pose-keepingflying, GPS flying, autonomous take off, or autonomous landing. In thesimulation system provided herein a user can practice instructing a UAVto perform an autonomous task. The instruction to perform an autonomoustask can be provided to the UAV in simulation mode though an identicalinterface as the interface used in flight mode. The interface can be aremote control.

The UAV simulation may use a display device to depict a virtualsimulated environment of the UAV. An application may run on a displaydevice, such as a mobile device. The application may show athree-dimensional virtual environment and flight of the UAV within theenvironment. As previously described, a flight control system may beused to control flight of the UAV within the virtual environment. Theflight control system may be on-board the UAV, on-board the displaydevice, or on any other device. The flight control system may use datafrom virtual sensors to generate a simulated flight. In some instances,a UAV may operate within a flight mode or a simulated mode. When inflight mode, the UAV flight control system may send signals topropulsion units of the UAV to effect flight of the UAV. When insimulated mode, the UAV flight control system may send signals to aphysical model without sending signals to the propulsion units. Thephysical model may provide virtual feedback, which may help define thesimulated flight of the UAV.

Provided herein are systems, methods, and devices configured to providea realistic flight simulation. A realistic flight simulation can be aflight simulation that comprises components used in a real flightoperation of a vehicle. Possible components of a realistic flightsimulation system are shown in FIG. 1. A realistic flight simulationsystem can comprise a remote controller 101, display device 102,connector 103 between the remote controller and the display device, andUAV 104.

The remote controller 101 can be the same remote controller that is usedto control a UAV 104 in a real flight operation. In some cases theremote controller can be a similar or identical copy of a remotecontroller that is used to control a UAV in a real flight operation. Theremote controller can have any combination of physical user interfacemechanisms. A physical user interface mechanism can be a component onthe remote controller that a user touches or manipulates to control atleast one function of the UAV. In an example, a physical user interfacemechanism can be a button, a joystick, a roller ball, a touch screen, aswitch, a dial, or a knob. In some cases the physical user interface cancomprise two or more joysticks. The joysticks may move vertically andhorizontally. The joysticks may be used to control pitch, roll, yaw,and/or vertical velocity. The physical user interface mechanisms can beconfigured such that a user can control movement of the UAV about aroll, yaw, and/or pitch axis. The physical user interface mechanisms canbe manipulated by a user to cause translation of a UAV in a directionalong a plane in three-dimensional space. The physical user interfacecan be further configured to provide a user control over the flight ofthe UAV. Controlling flight of the UAV can include controlling speed,power, throttle, and/or elevation of the UAV. In some cases, thephysical user interface can provide mechanisms to control non-flightactions of the UAV. A non-flight action can be movement of a sensor orpayload on-board the UAV. The non-flight action may include actuation ofa carrier of a UAV that may be configured to carry a payload. Anotherexample of a non-flight action can be collection and/or reporting ofdata collected by a sensor on-board the UAV. Additionally, the physicaluser interface can provide mechanisms to initiate an autonomous actionor task by the UAV. In an example, an autonomous task or action can beautomatic return, pose-keeping flying, GPS flying, autonomous take off,or autonomous landing.

The remote controller 101 can connect to a display device through 102 awired or wireless connection. The display device 102 can be a devicethat comprises a computing component and a visual display. The computingcomponent can comprise one or more processors, one or more memorystorage devices. The processors may be configured to executeinstructions in accordance with non-transitory computer readable medium.The memory may comprise non-transitory computer readable mediacomprising code, logic, or instructions for performing one or more stepsdescribed herein. The display device 102 can comprise a non-transitorycomputer readable media comprising program instructions for performing aflight simulation. The display device 102 can be a mobile device, suchas a smart phone. In some cases, the display device 102 can be a desktopcomputer, laptop computer, tablet, or virtual reality headset.Alternatively, the display device 102 can be the combination of acomputing component and a visual display where a visual display can be atouchscreen, projector, LCD screen, plasma screen, LED or OLED screen, atelevision, or a monitor. The display device can provide a visual and/ortextual representation of flight data during a flight simulation. Insome cases, the display device can additionally provide audio feedbackduring a flight simulation. The display device can be configured toreceive user input through a user interactive component, such as atouchscreen, switch, button, key, knob, mouse, pointer, trackball,joystick, touchpad, inertial sensors (e.g., accelerometers, gyroscopes,magnetometers) microphone, visual sensor, or infrared sensor. The userinteractive component may receive touch inputs, positional inputs, audioinputs, or visual inputs.

The remote controller 101 can be in communication with the displaydevice 102. Communication between the remote controller 101 and thedisplay device 102 can be provided through a wired or wirelessconnection. A wireless connection can be provided between the remotecontroller 101 and the display device 102 through an RF connection, IRconnection, Wi-Fi network, a wireless local area network (WLAN), acellular network, or any other available wireless network.Alternatively, a wired connection can be provided between the remotecontroller 101 and the display device 102 through a permanent wireconnection, coaxial cable connection, Firewire connection, MIDIconnection, eSTATA connection, an Ethernet connection, or any otheravailable wired connection that permits data transmission. In somecases, the wired connection can be a connection through a USB cable 103.

The remote controller 101 and/or the display device 102 can be incommunication through a wired or wireless connection with a flightcontrol system or flight controller. The flight control system can beon-board or off-board a UAV 104. In some cases, the flight controlsystem can be on-board the display device. The flight control system canbe configured to generate flight control data in response to an inputfrom the controller and/or the display device. The flight control systemcan receive input from a user through the remote controller and/or thedisplay device. The flight control system can communicate the input to asystem of one or more components that can generate real or virtualsensor data and communicate this data back to the flight control system.Based on the real or virtual sensor data, the flight control system cangenerate flight data and transmit the flight data to one or both of theremote controller 101 and the display device 102. The process ofgenerating real or virtual sensor data and the distinction between realand virtual sensor data will be described in detail below.

A UAV can be operated in a first or second operation mode. In a firstoperation mode the UAV can be flown in a real environment. In the firstoperation mode the UAV can be flown in the real environment by receivinginstructions or input from a remote controller. The first operation modecan be a flight mode.

The second mode can be a simulation mode. In the simulation mode the UAVmay fly within a virtual environment without flying in a realenvironment. The UAV may remain physically dormant and may not beself-propelled within the real environment. One or more propulsion unitsof the UAV may not operate while the UAV is in the simulation mode. Inthe second operation mode one or more components on-board the UAV cancontribute to a flight simulation. In some cases, none of the componentson-board the UAV can be used in the flight simulation. In a secondoperation mode a virtual UAV can be flown in a virtual or simulatedenvironment. The virtual UAV and the virtual environment can existmathematically in a simulated space. The virtual UAV can have the samefunctionality in the virtual environment as the real UAV in the realenvironment.

The UAV can comprise a receiver configured to receive a mode signal thatindicates that the UAV is in a first or second mode. The mode signal canbe provided by the remote controller, the display device, or a separatedevice in communication with the receiver. In some cases, the signal canbe provided through a hardware component on the UAV. The hardwarecomponent can be manipulated by a user to provide the signal to the UAV.For example, the hardware component can be a switch, button, or knobthat can be physically displaced between a first and second position toprovide a signal indicating a first or second mode. In another example,a flight mode can be a default mode and the UAV can operate in theflight mode unless a mode signal indicates a change to the simulationmode.

A user can initiate a change between flight and simulation modes. In anexample, a user can choose to use the UAV in simulation mode. To use thedevice in simulation mode a user can provide a mode signal to thereceiver to indicate that the UAV should operate in simulation mode. Theuser can provide the mode signal through a physical interface on the UAV(e.g. switch, button, lever, or knob). In some cases, the user canprovide the mode signal through the remote controller through a physicalinterface mechanism on the remote controller. An alternate device orremote, different from the remote controller used for flight control,can be used to send a mode signal to the UAV. Alternatively, the displaydevice can be used to send a mode signal to the UAV. When the displaydevice is turned on it may automatically connect to a communication uniton-board the UAV. The UAV can automatically default to simulation modewhenever the display device is in communication with the UAV. In somecases, the UAV may not automatically default to simulation mode wheneverthe display device is in communication with the UAV. The user cancommunicate with the receiver on-board the UAV to send a mode signalthrough the display device using a touch screen or physical mechanism(e.g. button, knob, switch, or lever). Similarly, the UAV can beoperated in flight mode by sending a signal to the receiver though theremote controller, display device, a physical interface on the UAV, orthrough another device or remote. In order to change from one mode toanother the UAV may need to be landed. In order to change from one modeto another, one or more propulsion units on the UAV may need to bepowered off

When the UAV is operating in a flight mode, the remote controller canprovide an input to the flight control system. The input provided by theremote controller can be flight control data. Flight control data can bean instruction that changes a flight path or causes a flight event tostart or stop. In an example, flight control data can be an instructionto start a propulsion system, stop a propulsion system, increase powerto a propulsion system, decrease power to a propulsion system, changethe heading of a UAV, change the elevation of the UAV, turn on a sensoron a UAV, turn off a sensor on a UAV, report sensor data from a sensoron-board the UAV, or initiate an autopilot function on the UAV. Theflight control system can receive and process the flight control datausing one or more processors. The processors can be configured to,individually or collectively, transform the flight control data into aninstruction to alter, initiate, or cease a flight action. The processorscan transform the flight control data identically in both flight andsimulation modes of operation.

When the UAV is in flight mode, the flight control data can becommunicated to one or more propulsion units of the UAV. A flightcontrol system on board the UAV can be configured to generate one ormore flights signals to be communicated to the one or more propulsionunits when the UAV is in flight mode. The one or more propulsion unitscan be configured to actuate and permit flight of the UAV in response tothe flight signals when the UAV is in flight mode. The one or morepropulsion units can further be configured to remain dormant and notpermit flight of the UAV when the UAV is in simulation mode. Insimulation mode, the one or more propulsion units may not receive aflight signal. Since the propulsion units do not receive a flight signalin the simulation mode, they may remain dormant.

Optionally, in a flight mode, the remote controller can be configured tocontrol actuation of a carrier that holds a payload of the UAV. Apayload can be an external sensor, for example a camera unit. Thepayload can be movable independent of the motion of the UAV. Optionally,in simulation mode, the remote controller can be configured to virtuallycontrol actuation of the carrier without physically causing actuation ofthe carrier on-board the UAV. Similarly to the propulsion units, when aUAV is in flight mode, a carrier, payload, sensor, and/or othercomponent of the UAV may receive a control signal from one or morecontrol systems on-board the UAV, which may effect operation of thecarrier, payload, sensor, and/or other component. When the UAV is insimulation mode, the carrier, payload, sensor and/or other component ofthe UAV does not receive a control signal from one or more controlsystems on-board the UAV, so that operation of the carrier, payload,sensor and/or other component is not effected. Virtual operation of thecarrier, payload, sensor, and/or other component may be effected for theflight simulation without causing physical operation. Thus, operation ofother features of the UAV may be simulated using the flight simulator.For example, a user may practice controlling direction of a cameraon-board of a UAV in a flight simulation using a camera control systemthat may be on-board the UAV, carrier, display device, or other device.This may affect the direction of images captured in the flightsimulation without effecting actuation of a camera or carrier on-boardthe UAV. Alternatively, only flight is simulated using the flightsimulator.

When the UAV is in simulation mode the input provided by the remotecontroller can be flight control data. Flight control data can be aninstruction that changes a flight path or causes a flight event to startor stop. In an example, flight control data can be an instruction tostart a propulsion system, stop a propulsion system, increase power to apropulsion system, decrease power to a propulsion system, change theheading of a UAV, change the elevation of the UAV, turn on a sensor on aUAV, turn off a sensor on a UAV, report sensor data from a sensoron-board the UAV, or initiate an autopilot function on the UAV. When theUAV is in simulation mode the flight control data may not becommunicated to the propulsion units of the UAV.

FIG. 2 shows a flow chart that describes an example of a flow of dataprovided to operate a UAV in a first or second mode. Flight data 201 canbe communicated to the flight control system 202. Flight data 201 can becommunicated to the flight control system 202 from the remote controllerand/or the display device. The flight control system can be configuredto provide the flight data to an output switcher 203. The flight controlsystem can process or transform the flight data 201 using one or moreprocessors prior to providing the flight data to the output switcher203. The output switcher 203 can direct the flight data 201 to the oneor more propulsion units 205 or to a physical model 206 based on a modesignal 204. The mode signal 204 can be provided by a user through theremote controller, the display device, a physical mechanism on-board theUAV, or from another device or remote. When the mode signal 204indicates that the UAV is in flight mode, the output switcher 203 candirect the flight data to one or more propulsion units 205. When themode signal 204 indicates that the UAV is in simulation mode, the outputswitcher 203 can direct the flight data to a physical model 206. Theflight data may not be communicated to one or more propulsion units insimulation mode.

Any descriptions of propulsion units may be applied to a carrier,payload, sensor, and/or other component of the UAV for differentiatingbetween a flight mode and a simulation mode of the UAV. For example, ina flight mode, an output switcher may direct a control signal to acarrier to cause movement of a payload relative to the UAV. In asimulation mode, the output switcher may instead direct the controlsignal to a virtual carrier without directing a control signal to thephysical carrier. The virtual carrier may or may not be part of thephysical model.

The physical model can be a mathematical model configured to simulatephysical simulation data in response to flight data. The physical modelcan comprise a non-transitory computer readable media comprising programinstructions for performing a flight simulation. The physical model cangenerate physical simulation data using constant and variable inputs. Aconstant input can be a property of the UAV. Constant properties can befixed for a specific UAV or a specific model of UAV. In an example aconstant property can be one or more dimensions of the UAV, aerodynamicproperties of the UAV, weight of the UAV, the make and model of themotor on the UAV, and/or maximum and minimum thrust that can be providedby one or more propulsion units on board the UAV. The physical model canbe configured to calculate a moment of inertia based on the dimensionsand weight distribution of a specific UAV or specific model of a UAV.Variable properties can be the independent of the specific model orspecific UAV. Variable properties can be dependent on weather orlocation. In an example, variable properties can be wind speed, winddirection, humidity, air density, and/or temperature. Variableproperties can be chosen randomly by the physical model or they may beinput by a user. In some cases, the variable properties can be derivedfrom a prior real flight performed by the UAV. In an example, if the UAVis used in a real flight in a real environment the variable propertiesexperienced in the environment can be recorded and stored on a memorystorage device off-board or on-board the UAV. After the real flight therecorded variable properties can be used in a simulated flight torecreate the real environment as a simulated environment.

The physical model can accept the constant and variable inputs togenerate an output using one or more mathematical models. The physicalmodel can run on a computer system that can comprise one or moreprocessors and one or more memory storage units. The physical model maybe run in accordance with non-transitory computer readable media. Thenon-transitory computer readable media may comprise code, logic, orinstructions for performing one or more steps described herein. Theprocessors may, individually or collectively, execute steps inaccordance with the non-transitory computer readable media.

A user can select a weather condition through the user interfaceprovided on the display device. The weather condition can be provided asan input to the physical model. In an example, a weather condition canresult in a constant or variable force on the UAV, for example a head ortail wind. The physical model can output physical simulation data. Thephysical simulation data can be one or more physical parameters that mayact on the UAV. In an example the physical model can output one or moreforces acting on the UAV. The forces can be any one or combination of adrag force, lift force, gravitational force, normal force, tangentialforce, or any other force known to act on the UAV. The physical modelcan provide as an output, a pressure profile along in the vicinity ofthe surface of the UAV. The physical model can also provide as anoutput, a velocity profile of the flow in the vicinity of the UAV.

The physical model may be provided on-board the UAV or on-board thedisplay device. In some embodiments, the flight control system and thephysical model may be on-board the UAV. This may advantageously permitthe flight simulation system to leverage existing processes on-board theUAV. In other embodiments, the flight control system and the physicalmodel may be on-board the display device. This may advantageously permita flight simulation that may utilize the remote controller withoutrequiring the presence or connection of the UAV. In other instances, theflight control system may be on-board a UAV while the physical model ison-board the display device, vice versa, or any other combination ofdistributed processes on-board the UAV and the display device.

The physical model can be provided for a specific UAV or a specificmodel of a UAV. In some cases the physical model can provide parameterscorresponding to a default UAV make and/or model. In some cases, thephysical model can be on-board a UAV. The physical model can beprogrammed to provide physical parameters corresponding to the UAV onwhich it is on-board. For example, as shown in FIG. 3, connection to afirst or second UAV with a controller can result in connection to aphysical model with fixed variables corresponding to the first or secondUAV. A controller 301 can be in communication with a first UAV 302comprising an output switcher that can be in communication with a firstphysical model 303. The first physical model can be configured tosimulate flight data outputs using fixed parameters corresponding to thefirst UAV. For example, the first physical model can be configured touse the weight, dimension, aerodynamic shape, motor strength, motorspeed, and other power properties corresponding to the first UAV in amathematical model to determine one or more outputs. In a second case,the same controller 301 can be in communication with a second physicalmodel on board a second UAV. The second UAV can have a relativelydifferent size, shape, weight, and/or power system compared to the firstUAV. A controller 301 can be in communication with the second UAV 304comprising an output switcher that can be in communication with thesecond physical model 305. The second physical model can be configuredto simulate flight data outputs using fixed parameters corresponding tothe second UAV. For example, the second physical model can be configuredto use the weight, dimension, aerodynamic shape, motor strength, motorspeed, and other power properties corresponding to the second UAV in amathematical model to determine one or more outputs.

In an alternate embodiment, the physical model can be off-board the UAV.The physical model can be on-board a display device. When the physicalmodel is on-board a display device a user can choose to run a simulationusing a UAV of a specified make and/or model. The physical model canhave fixed physical parameters corresponding to one or more possiblemakes and/or models of a UAV saved on a memory storage device on oroff-board the display device. A user can choose to use the saved fixedphysical parameters corresponding to the one or more possible makesand/or models of UAV saved on the memory storage device or a user caninput the fixed physical parameters directly into the physical model.

The physical model can be configured to generate as an output theexpected response of a flight control input on the UAV. The output canbe specific to a UAV with fixed physical parameters (e.g. dimension,weight, aerodynamic cross section, and/or motor specifications). Theexpected response to a flight control input can be dependent on thephysical parameters of the UAV. For example, a heavier UAV canaccelerate slower than a relatively lighter UAV. Similarly, a UAV with astronger (e.g. higher torque) motor can accelerate faster than a UAVwith a relatively weaker motor.

Additionally, the physical model can calculate non-flight parameters. Inan example, a non-flight parameter can be battery usage rate andremaining battery life. The battery usage can be calculated as afunction of the UAV specifications (e.g. dimension, weight, aerodynamiccross section, and/or motor specifications), the flight control data,and the variable parameters in the simulated environment. The variableparameters can influence the power requirements of the UAV and thereforeinfluence the battery usage rate. For example, a simulated environmentwith a strong headwind can drain the battery than a simulatedenvironment without a headwind or with a tail wind. Similarly, theflight control data can influence the battery usage rate. For example,operating the UAV at a relatively higher speed can drain the batteryfaster than operating the UAV at a relatively lower speed. Anotherexample of a non-flight parameter that can be calculated by the physicalmodel is wearing of parts on-board the UAV. The physical model cancalculate forces that act on the UAV in the simulated environment anddetermine when a part or parts experience damage as a result of theforces.

The physical model can provide one or more outputs to a virtual sensor.The virtual sensor can be configured to generate virtual sensor databased on one or more outputs from the physical model simulation data. Atleast a fraction of the virtual sensor output can mimic data that wouldbe generated by real sensors on-board the UAV during a flight modeoperation of the UAV in a real environment. A virtual sensor cangenerate location data. Location data can be one or more distancesbetween the UAV and obstacles or surfaces in the simulated environment.In a flight mode operation location data can be generated by a radarsignal, sonar signal, or a global positioning software (GPS) signal. Avirtual sensor can also generate visual data. In a flight mode visualdata can come from a vision sensor. A vision sensor can be a monocularcamera, stereo vision camera, radar, sonar, or an infrared camera. Avirtual sensor can generate data that describes movement of the UAVand/or forces acting on the UAV. In a flight mode a real sensorconfigured to detect movement of the UAV and/or forces acting on the UAVcould be a gyroscope, magnetometer, and/or an accelerometer. Real sensordata may come from a hardware driver. Data may be converted to a generaltype form. For example, acceleration data may be provided in a floattype (e.g., 3 float type), and a buffer may be defined (e.g., floatacc_raw_data[3]). In a flight mode, the data may be filled by thehardware driver. In a simulation mode, this data may be filled by thephysical model simulation program. Examples of sensors that may beprovided as real physical hardware in flight mode, and which may besimulated by a physical model in a simulation mode, may includeaccelerometers, gyroscopes, magnetometers, GPS, and/or pressure sensors.The data format of the virtual sensors may be a same format as ahardware driver output. For instance, a float type format may be usedfor both virtual and real sensors.

The sensor data can be provided to an inertial measurement unit. Theinertial measurement unit can be on-board the UAV. The inertialmeasurement unit (IMU) can be configured to interpret the sensor data todetermine and generate flight state information using the sensor data.The IMU can interpret sensor data from virtual or real sensors when theUAV is in simulation or flight mode, respectively. The IMU can interpretand/or process the sensor data from the real or virtual sensors togenerate flight state information. Flight state information can includeattitude, acceleration, speed, gyroscopic information, pressure, spatialdisposition of the UAV, location (e.g. GPS data) data. The IMU canprovide the flight state information to the flight state control system.

The overall system and examples of communication between components areshown in FIG. 4. The system can comprise a remote controller 402 and adisplay device 401. Either or both of the remote controller 402 and thedisplay device 401 can be in communication with a flight control systemor flight controller 403. The remote controller 402 may or may notmodify flight data provided by the flight controller 403. The remotecontroller and/or the display device can be in communication with theflight controller or flight control system 403 through a wired orwireless connection. In a first scenario, the display device 401 cancommunicate with the remote controller 402 and the remote controller 402can communicate with the flight control system 403. The flight controlsystem 403 can receive an input from the remote controller 402 andtransmit an output to the remote controller 42; the remote controller402 can further transmit the output to the display device 401. In asecond scenario, the remote controller 402 can provide and input to thedisplay device 401 and the display device 401 can transmit the input tothe flight control system 403. The flight control system 403 cantransmit an output to the display device 401 and the display device cantransmit the output to the remote controller 402. In a third scenario,both the remote controller 402 and the display device 401 canindependently send and receive inputs and outputs, respectively, to theflight control system 403.

The display device 401 may only be in communication with the flightcontroller 403 when the UAV is operating in simulation mode. When thedisplay device 401 is connected to the flight controller 403 while theUAV is operating in simulation mode the display device can be programmedto execute a first software program. During simulation mode the displaydevice 401 can run a first software program that provides a visual,textual, and/or audio representation of the flight data. In some cases,the display device 401 can be in communication with the flightcontroller 403 when the UAV is operating in flight mode. The displaydevice can be programmed to execute a second software program when theUAV is in flight mode. During flight mode the display device 401 can runa second software program that provides real flight data. The remotecontroller 402 can be in communication with the UAV in simulation modeor flight mode. The flight control system 403 can receive a mode signalfrom either or both of the remote controller 402 or the display device401. Alternatively, the flight control system 403 can receive a modesignal through a physical input from a user corresponding tomanipulation of a mechanism (e.g. switch, button, knob, or dial) on theUAV. The flight control system 403 can communicate the mode signal to anoutput switcher 409. The flight control system can also receive flightcontrol data from either or both of the remote controller and thedisplay device. The output switcher 409 can determine whether the flightcontrol data is communicated to the physical model 408 or one or morepropulsion 410 units on-board the UAV.

When the mode signal received by the output switcher 409 indicates thatthe UAV is in flight mode the output switcher 409 can communicate theflight control data to one or more propulsion units 410 on-board theUAV. The one or more propulsion 410 units can comprise a motor. In somecases the output switcher 409 can communicate the flight control data toan electronic speed control unit in flight mode. The electronic speedcontrol unit can be a circuit configured to control the output of amotor connected to the one or more propulsion units. When the UAV isoperated in flight mode real sensors 406 on-board the UAV can collectreal sensor data. The real sensor data can be communicated to a sensorlayer 405. The sensor layer 405 can be a module configured to preprocessor label sensor data and transmit the sensor data to an inertialmeasurement unit (IMU) 404. The IMU can further process the sensor datato generate parameters that can be used by the flight controller 403.The IMU 404 can generate flight data from real sensor data or virtualsensor data. Real sensor data can be data generated by sensors on oroff-board the UAV when the UAV is operating in flight mode. Virtualsensor data can be data generated by a virtual sensor while the UAV isoperating in simulation mode. A virtual sensor can be one or moreprocessors configured to transform an output from the physical modelinto a virtual sensor data output. The IMU 404 can transmit thegenerated flight data to the flight controller 403. The flightcontroller 403 can provide feedback to the remote controller 402 whenthe UAV is in flight mode. The feedback provided to the remotecontroller 402 from the flight controller 403 can be simulated flightdata. The UAV can comprise a communication unit configured to transmitthe simulated flight data to the remote controller 402.

When the mode signal received by the output switcher 409 indicates thatthe UAV is in simulation mode the output switcher can communicate theflight control data to one or more physical models 408 on-board the UAV.The physical model can calculate an output using a combination of any orall of the flight control data from the remote controller and/or thedisplay device, a prescribed environmental condition (e.g. air pressure,air density, wind speed, ambient temperature, and/or humidity), and/orfixed properties of the UAV (e.g. dimension, weight, powerspecifications, and/or aerodynamic shape). The output from the physicalmodel can be communicated to one or more virtual sensors 407. Thevirtual sensors 407 can generate sensor data based on one or moreoutputs from the physical model 408. The virtual sensors 407 cantransmit the generated sensor data to a sensor layer 405. The sensorlayer 405 can be a module configured to preprocess or label the virtualsensor data and transmit the virtual sensor data to an IMU 404. The samesensor layer can be used in both simulation and flight mode of the UAV.The IMU 404 can further process the virtual sensor data to generateparameters that can be used by the flight controller. The IMU 404 cangenerate attitude, acceleration, velocity, gyroscopic data, magnetometerdata, pressure, and/or location data (e.g. GPS data). The IMU 404 cantransmit the generated data to the flight controller 403. The flightcontroller 403 can provide feedback to the remote controller 402 and/orthe display device 401 when the UAV is in simulation mode. When the UAVis in simulation mode data can be transferred between the remotecontroller 402 and the display device 401.

In simulation mode the display device can receive simulated flight datafrom the flight control system on board the UAV. The simulated flightdata can be transmitted to the display device directly from the flightcontroller on board the UAV or the data can be transmitted from theflight controller to the remote controller and then from the remotecontroller to the display device. The display device can comprise anon-transitory computer readable media comprising instructions forperforming a flight simulation. The instructions for performing a flightsimulation can be stored locally on a memory storage device in thedisplay device or off-board the display device on another host device incommunication with the display device. The display device can comprise ascreen that may depict the simulation data in a 2D or 3D rendering. Thedisplay device can be a mobile phone (e.g. smart phone), tablet, desktopcomputer, laptop computer, virtual reality headset, or a television orprojector in communication with a computer device. In some cases thedisplay device can comprise a touch screen, an LCD screen, or a plasmascreen.

FIG. 5 shows a flow chart of a possible data flow example for a flightsimulation mode operation. A user can provide a “start” or “on” command501 to an application (“app”) or software program running on displaydevice 502. When the app is running the display device can request datafrom a remote controller 503. The remote controller 503 can send data toa flight controller 504 on board a UAV. The data can be a flight controlcommand. A flight control command can be data that is useful forgenerating simulated flight data on-board the UAV. For example, a flightcontrol command can be an instruction to increase or decrease UAV speed,change in altitude, change heading, rotate in a about a yaw, or rollaxis, or to perform an autopilot action. The flight control command fromthe remote controller can be generated by a user. The flight controlcommand can be input to the remote controller though a physicalinterface on the remote controller. In an example, a physical interfacecan be one or more joysticks, roller balls, knobs, button, or a touchscreen. The flight controller can send the data from the remotecontroller to the physical model 505. The flight controller 504 mayprocess the data from the remote controller before transmitting the datato the physical model 505. The physical model 505 can generate virtualflight data using a mathematical model in communication with a virtualsensor model and the IMU on board the UAV. The virtual flight data canbe communicated to the flight controller 504. The flight controller 504can compute and/or process the virtual flight data (e.g. perform a pulsewidth modulation (PWM)) and transmit the data to the remote controller503. The remote controller 503 can then transmit the data to the displaydevice 502. The display device 502 can illustrate the data to a userthrough a display screen or user interface on the display device. Thedisplay device 502 can provide a visual display of simulated flightstate information. The data can be displayed as a 2D or 3D rendering. Insome cases the data can be displayed in a chart or table. When a userfinishes a flight simulation a “stop” or “off” signal can becommunicated to the display device to terminate the simulation 506.

The display device can communicate with the remote controller though awired or wireless connection. In some cases a wired connection can be aUSB connection. The remote controller can receive simulated flight datafrom the flight control system on board the UAV. The simulated flightdata can be modified by the remote controller before it is communicatedto the display device. In some cases, the simulated flight data may notbe modified by the remote controller prior to being communicated to thedisplay device. In some cases, a flight simulation can be operatedwithout connection to a flight control system on-board the UAV. Theflight simulation can be executed with a connection between a remotecontroller and a display device. The display device can receiveinstructions directly from the remote controller and the display devicecan generate a flight simulation without communicating with the flightcontroller on-board the UAV.

In some embodiments the remote controller and the display device may notbe configured to communicate directly. In an example a display devicecan be configured to receive simulated flight data directly from aflight control system on-board a UAV. The display device may onlyreceive simulated flight data from the flight control system when theUAV is in simulation mode. The display device can be in communicationwith the flight control system on-board the UAV through a wired orwireless connection. The flight control system can transmit simulatedflight state information to the display device. The UAV can also beconfigured to communicate with a remote controller configured to controlflight of the UAV in flight mode or simulation mode. The same controllercan be used to control the UAV in both flight mode and simulation mode.The flight control data communicated to the UAV can be transmitted tothe one or more propulsion units on board the UAV in flight mode. Insimulation mode the flight control data communicated to the UAV can betransmitted to the physical model to generate simulated flight data.Simulated flight data can be generated by the flight control system fromflight control data from the remote controller, virtual sensor data fromone or more virtual sensors, and one or more outputs from the physicalmodel on-board the UAV. The display device can display simulated flightstate information of the UAV in response to the simulated flight datareceived from the flight control system.

Simulated flight of a UAV can comprise receiving a flight control signalat a flight control system. The flight control system can be on-boardthe UAV or on-board the display device. The flight control signal can betransmitted from a remote controller. The remote controller can beoperated by a user in real time or the remote controller can receiveinputs from a processor pre-programmed by a user to provide a series offlight control signals in response to a start command. The flightcontrol signal can be an instruction to perform a discrete task oraction. In an example a discrete task or action can be to increase ordecrease speed by a fixed amount or percentage, to turn in a specifieddirection a specified number of degrees, or to increase or decreasealtitude a fixed amount or percentage. In some cases, a flight controlsignal can include a command for a predetermined flight sequence. In anexample a predetermined flight sequence can be an auto pilot function(e.g. auto take off, auto landing, or auto pilot flight for a specifieddistance), execution of pre-programmed mission, an auto-return of theUAV to a starting point of the flight of the UAV, autonomous hovering ofthe UAV, and/or pose-keeping flying of the UAV. A pre-programmed missioncan include flight to a specific location or locations with our withoutoperation of on-board sensors to collect and/or transmit data from theone or more locations. The flight control system can generate simulationflight data for or pertaining to execution of the discrete task oraction or the predetermined flight sequence.

An auto pilot function can be an auto take-off or landing. An autonomoustake off can comprise turning on one or more propulsions units andgenerating a lift force sufficient to leave a surface. Autonomous takeoff can additionally include adjusting rotation and translation of theUAV to maintain stability. Once the UAV reaches a specified altitudeabove a take-off surface and achieves stability the UAV can exit theautopilot function and a user can control the UAV. Similarly during anauto landing a UAV can approach a surface while maintaining stabilityand turn off the one or more propulsion units after landing on asurface. During pose-keeping flight a UAV may fly in a specifieddirection while maintaining a specified distance from a surface orobstacle.

The simulated flight data can be displayed on a visual display or userinterface of the display device. The visual display can be an image of aUAV in a simulated environment. The UAV can be articulated in thedisplay in real time corresponding to flight data provided by thecontroller. The display can be an image or an animation of the simulatedenvironment in a 3D rendering of the environment. The simulated flightdata can be displayed in the form of simulated flight state information.Simulated flight state information can include the location of the UAVin an environment, proximity to features in the environment, velocity ofthe UAV, acceleration of the UAV, directional heading of the UAV, and/orhealth of one or more systems on the UAV.

FIG. 6 shows an example of a data 601 that can be shown on a visualdisplay of a display device during simulated flight of a UAV. The visualdisplay can be shown on a screen or projected on to a screen by thedisplay device. The screen can be a plasma screen, an LCD display, or atouch screen. The data can show an image of the UAV 602 relative to asimulated environment. The UAV 602 shown in the simulation can be ageneric image of a UAV. Alternatively, the UAV 602 shown in thesimulation can have specific features corresponding to a chosen UAV makeand/or model. In some cases the UAV make and/or model can be specifiedby a user. Alternatively, the UAV make and/or model can be specified bythe flight control system. The simulated environment can be chosenrandomly or chosen by a user from a set of environments. The features ofthe environment can be saved on a memory storage device on-board thedisplay device or on-board the UAV. In some cases an environment can bean environment that was encountered on a real flight previouslyperformed by a UAV. Sensor data that was collected on the previousflight by the UAV in the environment can be used to recreate theenvironment in a virtual simulation. The environment in the simulationcan be recreated using sensor data defining obstacle locations andambient conditions (e.g. wind speed, air pressure, air density, andhumidity). The simulated environment can include obstacles 603. Thevisual display can show a map of the simulated environment. The map caninclude topography of the environment. A user can control the UAV in thesimulated environment to avoid and/or interact with the obstacles 603,obstacles can be topographical features in the environment. The visualdisplay can further comprise a text box 604. The text box 604 candisplay a chart, graph, or table showing quantitative simulated flightdata. In an example the text box can display distance traveled, currentlocation in global or local coordinates, average speed, current speed,altitude, heading, battery power remaining, current wind speed, or otherquantitative data that can be useful in controlling UAV flight. A usercan specify the amount and type of data to be displayed in the text box604.

Warnings and/or hints can be provided to a user in the user interface ordisplay screen on a display device. The hints and/or warnings can occurwhen a UAV enters a specified region of the virtual environment. In somecases the hints and/or warnings can be provided when the flight state ofthe UAV is within a threshold value. Hints and/or warning can beprovided when the UAV is out of control, when a landing gear deformationoccurs, when the UAV battery is critically low, or when another flighthazard is detected. For example, a hint and/or warning can be providedwhen a UAV exceeds a threshold speed, falls below a threshold speed,falls below a remaining battery charge, or exceeds or falls below athreshold altitude. The warnings and/or hints can be provided to a userthrough an audio or visual stimulus. In an example, an audio stimuluscan be a beep, buzz, or a spoken command. A visual stimulus can be abanner or window pop-up on the display screen on the display device. Forexample, a visual stimulus can be a banner across a screen with textualinstructions as shown in FIG. 7. In some cases a stimulus can be a hintto a user to initiate a predetermined flight sequence. In an example, ahint that could be displayed on the screen could be “lose control”,“initiate auto landing”, “hover”, “increase speed”, “decrease speed”, or“auto return”. The hints can be provided in two tiers. In the first tiera hint can instruct a user to initiate a predetermined flight sequencegenerally. If the user does not initiate the correct predeterminedflight sequence within a predetermined time interval, a second hint canbe provided that specifies which predetermined flight sequence should beperformed. In some cases, a user can disable hints and/or warnings.

An unmanned aerial vehicle (UAV) can have one or more sensors. The UAVmay comprise one or more vision sensors such as an image sensor. Forexample, an image sensor may be a monocular camera, stereo visioncamera, radar, sonar, or an infrared camera. The UAV may furthercomprise other sensors that may be used to determine a location of theUAV, such as global positioning system (GPS) sensors, inertial sensorswhich may be used as part of or separately from an inertial measurementunit (IMU) (e.g., accelerometers, gyroscopes, magnetometers), lidar,ultrasonic sensors, acoustic sensors, WiFi sensors. The UAV can havesensor on-board the UAV that collect information directly from anenvironment without contacting an additional component off-board the UAVfor additional information or processing. For example, a sensor thatcollects data directly in an environment can be a vision or audiosensor. Alternatively, the UAV can have sensors that are on-board theUAV but contact one or more components off-board the UAV to collect dataabout an environment. For example, a sensor that contacts a componentoff-board the UAV to collect data about an environment may be a GPSsensor or another sensor that relies on connection to a another device,such as a satellite, tower, router, server, or other external device.Various examples of sensors may include, but are not limited to,location sensors (e.g., global positioning system (GPS) sensors, mobiledevice transmitters enabling location triangulation), vision sensors(e.g., imaging devices capable of detecting visible, infrared, orultraviolet light, such as cameras), proximity or range sensors (e.g.,ultrasonic sensors, lidar, time-of-flight or depth cameras), inertialsensors (e.g., accelerometers, gyroscopes, inertial measurement units(IMUs)), altitude sensors, attitude sensors (e.g., compasses) pressuresensors (e.g., barometers), audio sensors (e.g., microphones) or fieldsensors (e.g., magnetometers, electromagnetic sensors). Any suitablenumber and combination of sensors can be used, such as one, two, three,four, five, or more sensors. Optionally, the data can be received fromsensors of different types (e.g., two, three, four, five, or moretypes). Sensors of different types may measure different types ofsignals or information (e.g., position, orientation, velocity,acceleration, proximity, pressure, etc.) and/or utilize different typesof measurement techniques to obtain data. For instance, the sensors mayinclude any suitable combination of active sensors (e.g., sensors thatgenerate and measure energy from their own energy source) and passivesensors (e.g., sensors that detect available energy). As anotherexample, some sensors may generate absolute measurement data that isprovided in terms of a global coordinate system (e.g., position dataprovided by a GPS sensor, attitude data provided by a compass ormagnetometer), while other sensors may generate relative measurementdata that is provided in terms of a local coordinate system (e.g.,relative angular velocity provided by a gyroscope; relativetranslational acceleration provided by an accelerometer; relativeattitude information provided by a vision sensor; relative distanceinformation provided by an ultrasonic sensor, lidar, or time-of-flightcamera). The sensors onboard or off board the UAV may collectinformation such as location of the UAV, location of other objects,orientation of the UAV, or environmental information. A single sensormay be able to collect a complete set of information in an environmentor a group of sensors may work together to collect a complete set ofinformation in an environment. Sensors may be used for mapping of alocation, navigation between locations, detection of obstacles, ordetection of a target. Sensors may be used for surveillance of anenvironment or a subject of interest.

Any description herein of a UAV may apply to any type of movable object.The description of a UAV may apply to any type of unmanned movableobject (e.g., which may traverse the air, land, water, or space). TheUAV may be capable of responding to commands from a remote controller.The remote controller may be not connected to the UAV, the remotecontroller may communicate with the UAV wirelessly from a distance. Insome instances, the UAV may be capable of operating autonomously orsemi-autonomously. The UAV may be capable of following a set ofpre-programmed instructions. In some instances, the UAV may operatesemi-autonomously by responding to one or more commands from a remotecontroller while otherwise operating autonomously. For instance, one ormore commands from a remote controller may initiate a sequence ofautonomous or semi-autonomous actions by the UAV in accordance with oneor more parameters.

The UAV may be an aerial vehicle. The UAV may have one or morepropulsion units that may permit the UAV to move about in the air. Theone or more propulsion units may enable the UAV to move about one ormore, two or more, three or more, four or more, five or more, six ormore degrees of freedom. In some instances, the UAV may be able torotate about one, two, three or more axes of rotation. The axes ofrotation may be orthogonal to one another. The axes of rotation mayremain orthogonal to one another throughout the course of the UAV'sflight. The axes of rotation may include a pitch axis, roll axis, and/oryaw axis. The UAV may be able to move along one or more dimensions. Forexample, the UAV may be able to move upwards due to the lift generatedby one or more rotors. In some instances, the UAV may be capable ofmoving along a Z axis (which may be up relative to the UAV orientation),an X axis, and/or a Y axis (which may be lateral). The UAV may becapable of moving along one, two, or three axes that may be orthogonalto one another.

The UAV may be a rotorcraft. In some instances, the UAV may be amulti-rotor craft that may include a plurality of rotors. The pluralityor rotors may be capable of rotating to generate lift for the UAV. Therotors may be propulsion units that may enable the UAV to move aboutfreely through the air. The rotors may rotate at the same rate and/ormay generate the same amount of lift or thrust. The rotors mayoptionally rotate at varying rates, which may generate different amountsof lift or thrust and/or permit the UAV to rotate. In some instances,one, two, three, four, five, six, seven, eight, nine, ten, or morerotors may be provided on a UAV. The rotors may be arranged so thattheir axes of rotation are parallel to one another. In some instances,the rotors may have axes of rotation that are at any angle relative toone another, which may affect the motion of the UAV.

The UAV shown may have a plurality of rotors. The rotors may connect tothe body of the UAV which may comprise a control unit, one or moresensors, processor, and a power source. The sensors may include visionsensors and/or other sensors that may collect information about the UAVenvironment. The information from the sensors may be used to determine alocation of the UAV. The rotors may be connected to the body via one ormore arms or extensions that may branch from a central portion of thebody. For example, one or more arms may extend radially from a centralbody of the UAV, and may have rotors at or near the ends of the arms.

A vertical position and/or velocity of the UAV may be controlled bymaintaining and/or adjusting output to one or more propulsion units ofthe UAV. For example, increasing the speed of rotation of one or morerotors of the UAV may aid in causing the UAV to increase in altitude orincrease in altitude at a faster rate. Increasing the speed of rotationof the one or more rotors may increase the thrust of the rotors.Decreasing the speed of rotation of one or more rotors of the UAV mayaid in causing the UAV to decrease in altitude or decrease in altitudeat a faster rate. Decreasing the speed of rotation of the one or morerotors may decrease the thrust of the one or more rotors. When a UAV istaking off, the output may be provided to the propulsion units may beincreased from its previous landed state. When the UAV is landing, theoutput provided to the propulsion units may be decreased from itsprevious flight state. The UAV may be configured to take off and/or landin a substantially vertical manner.

A lateral position and/or velocity of the UAV may be controlled bymaintaining and/or adjusting output to one or more propulsion units ofthe UAV. The altitude of the UAV and the speed of rotation of one ormore rotors of the UAV may affect the lateral movement of the UAV. Forexample, the UAV may be tilted in a particular direction to move in thatdirection and the speed of the rotors of the UAV may affect the speed ofthe lateral movement and/or trajectory of movement. Lateral positionand/or velocity of the UAV may be controlled by varying or maintainingthe speed of rotation of one or more rotors of the UAV.

The UAV may be of small dimensions. The UAV may be capable of beinglifted and/or carried by a human. The UAV may be capable of beingcarried by a human in one hand.

The UAV may have a greatest dimension (e.g., length, width, height,diagonal, diameter) of no more than 100 cm. In some instances, thegreatest dimension may be less than or equal to 1 mm, 5 mm, 1 cm, 3 cm,5 cm, 10 cm, 12 cm, 15 cm, 20 cm, 25 cm, 30 cm, 35 cm, 40 cm, 45 cm, 50cm, 55 cm, 60 cm, 65 cm, 70 cm, 75 cm, 80 cm, 85 cm, 90 cm, 95 cm, 100cm, 110 cm, 120 cm, 130 cm, 140 cm, 150 cm, 160 cm, 170 cm, 180 cm, 190cm, 200 cm, 220 cm, 250 cm, or 300 cm. Optionally, the greatestdimension of the UAV may be greater than or equal to any of the valuesdescribed herein. The UAV may have a greatest dimension falling within arange between any two of the values described herein.

The UAV may be lightweight. For example, the UAV may weigh less than orequal to 1 mg, 5 mg, 10 mg, 50 mg, 100 mg, 500 mg, 1 g, 2 g, 3 g, 5 g, 7g, 10 g, 12 g, 15 g, 20 g, 25 g, 30 g, 35 g, 40 g, 45 g, 50 g, 60 g, 70g, 80 g, 90 g, 100 g, 120 g, 150 g, 200 g, 250 g, 300 g, 350 g, 400 g,450 g, 500 g, 600 g, 700 g, 800 g, 900 g, 1 kg, 1.1 kg, 1.2 kg, 1.3 kg,1.4 kg, 1.5 kg, 1.7 kg, 2 kg, 2.2 kg, 2.5 kg, 3 kg, 3.5 kg, 4 kg, 4.5kg, 5 kg, 5.5 kg, 6 kg, 6.5 kg, 7 kg, 7.5 kg, 8 kg, 8.5 kg, 9 kg, 9.5kg, 10 kg, 11 kg, 12 kg, 13 kg, 14 kg, 15 kg, 17 kg, or 20 kg. The UAVmay have a weight greater than or equal to any of the values describedherein. The UAV may have a weight falling within a range between any twoof the values described herein.

The systems, devices, and methods described herein can be applied to awide variety of movable objects. As previously mentioned, anydescription herein of an aerial vehicle, such as a UAV, may apply to andbe used for any movable object. Any description herein of an aerialvehicle may apply specifically to UAVs. A movable object of the presentinvention can be configured to move within any suitable environment,such as in air (e.g., a fixed-wing aircraft, a rotary-wing aircraft, oran aircraft having neither fixed wings nor rotary wings), in water(e.g., a ship or a submarine), on ground (e.g., a motor vehicle, such asa car, truck, bus, van, motorcycle, bicycle; a movable structure orframe such as a stick, fishing pole; or a train), under the ground(e.g., a subway), in space (e.g., a spaceplane, a satellite, or aprobe), or any combination of these environments. The movable object canbe a vehicle, such as a vehicle described elsewhere herein. In someembodiments, the movable object can be carried by a living subject, ortake off from a living subject, such as a human or an animal. Suitableanimals can include avines, canines, felines, equines, bovines, ovines,porcines, delphines, rodents, or insects.

The movable object may be capable of moving freely within theenvironment with respect to six degrees of freedom (e.g., three degreesof freedom in translation and three degrees of freedom in rotation).Alternatively, the movement of the movable object can be constrainedwith respect to one or more degrees of freedom, such as by apredetermined path, track, or orientation. The movement can be actuatedby any suitable actuation mechanism, such as an engine or a motor. Theactuation mechanism of the movable object can be powered by any suitableenergy source, such as electrical energy, magnetic energy, solar energy,wind energy, gravitational energy, chemical energy, nuclear energy, orany suitable combination thereof. The movable object may beself-propelled via a propulsion system, as described elsewhere herein.The propulsion system may optionally run on an energy source, such aselectrical energy, magnetic energy, solar energy, wind energy,gravitational energy, chemical energy, nuclear energy, or any suitablecombination thereof. Alternatively, the movable object may be carried bya living being.

In some instances, the movable object can be an aerial vehicle. Forexample, aerial vehicles may be fixed-wing aircraft (e.g., airplane,gliders), rotary-wing aircraft (e.g., helicopters, rotorcraft), aircrafthaving both fixed wings and rotary wings, or aircraft having neither(e.g., blimps, hot air balloons). An aerial vehicle can beself-propelled, such as self-propelled through the air. A self-propelledaerial vehicle can utilize a propulsion system, such as a propulsionsystem including one or more engines, motors, wheels, axles, magnets,rotors, propellers, blades, nozzles, or any suitable combinationthereof. In some instances, the propulsion system can be used to enablethe movable object to take off from a surface, land on a surface,maintain its current position and/or orientation (e.g., hover), changeorientation, and/or change position.

The movable object can be controlled remotely by a user or controlledlocally by an occupant within or on the movable object. The movableobject may be controlled remotely via an occupant within a separatevehicle. In some embodiments, the movable object is an unmanned movableobject, such as a UAV. An unmanned movable object, such as a UAV, maynot have an occupant on-board the movable object. The movable object canbe controlled by a human or an autonomous control system (e.g., acomputer control system), or any suitable combination thereof. Themovable object can be an autonomous or semi-autonomous robot, such as arobot configured with an artificial intelligence.

The movable object can have any suitable size and/or dimensions. In someembodiments, the movable object may be of a size and/or dimensions tohave a human occupant within or on the vehicle. Alternatively, themovable object may be of size and/or dimensions smaller than thatcapable of having a human occupant within or on the vehicle. The movableobject may be of a size and/or dimensions suitable for being lifted orcarried by a human. Alternatively, the movable object may be larger thana size and/or dimensions suitable for being lifted or carried by ahuman. In some instances, the movable object may have a maximumdimension (e.g., length, width, height, diameter, diagonal) of less thanor equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m. Themaximum dimension may be greater than or equal to about: 2 cm, 5 cm, 10cm, 50 cm, 1 m, 2 m, 5 m, or 10 m. For example, the distance betweenshafts of opposite rotors of the movable object may be less than orequal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.Alternatively, the distance between shafts of opposite rotors may begreater than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m,or 10 m.

In some embodiments, the movable object may have a volume of less than100 cm×100 cm×100 cm, less than 50 cm×50 cm×30 cm, or less than 5 cm×5cm×3 cm. The total volume of the movable object may be less than orequal to about: 1 cm³, 2 cm³, 5 cm³, 10 cm³, 20 cm³, 30 cm³, 40 cm³, 50cm³, 60 cm³, 70 cm³, 80 cm³, 90 cm³, 100 cm³, 150 cm³, 200 cm³ , 300 cm,500 cm³, 750 cm³, 1000 cm³, 5000 cm³, 10,000 cm³, 100,000 cm³3, 1 m³, or10 m³. Conversely, the total volume of the movable object may be greaterthan or equal to about: 1 cm³, 2 cm³, 5 cm³, 10 cm³, 20 cm³, 30 cm³, 40cm³, 50 cm³, 60 cm³, 70 cm³, 80 cm³, 90 cm³, 100 cm³, 150 cm³ , 200 cm,300 cm³, 500 cm³, 750 cm³, 1000 cm³, 5000 cm³, 10,000 cm³, 100,000 cm³,1 m³, or 10 m³.

In some embodiments, the movable object may have a footprint (which mayrefer to the lateral cross-sectional area encompassed by the movableobject) less than or equal to about: 32,000 cm², 20,000 cm², 10,000 cm²,1,000 cm², 500 cm², 100 cm², 50 cm², 10 cm², or 5 cm². Conversely, thefootprint may be greater than or equal to about: 32,000 cm², 20,000 cm²,10,000 cm², 1,000 cm², 500 cm², 100 cm², 50 cm², 10 cm², or 5 cm².

In some instances, the movable object may weigh no more than 1000 kg.The weight of the movable object may be less than or equal to about:1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60 kg, 50kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10 kg, 9 kg,8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1 kg, 0.05 kg,or 0.01 kg. Conversely, the weight may be greater than or equal toabout: 1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60kg, 50 kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10kg, 9 kg, 8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1kg, 0.05 kg, or 0.01 kg.

In some embodiments, a movable object may be small relative to a loadcarried by the movable object. The load may include a payload and/or acarrier, as described in further detail elsewhere herein. In someexamples, a ratio of a movable object weight to a load weight may begreater than, less than, or equal to about 1:1. In some instances, aratio of a movable object weight to a load weight may be greater than,less than, or equal to about 1:1. Optionally, a ratio of a carrierweight to a load weight may be greater than, less than, or equal toabout 1:1. When desired, the ratio of an movable object weight to a loadweight may be less than or equal to: 1:2, 1:3, 1:4, 1:5, 1:10, or evenless. Conversely, the ratio of a movable object weight to a load weightcan also be greater than or equal to: 2:1, 3:1, 4:1, 5:1, 10:1, or evengreater.

In some embodiments, the movable object may have low energy consumption.For example, the movable object may use less than about: 5 W/h, 4 W/h, 3W/h, 2 W/h, 1 W/h, or less. In some instances, a carrier of the movableobject may have low energy consumption. For example, the carrier may useless than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less. Optionally,a payload of the movable object may have low energy consumption, such asless than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less.

FIG. 8 illustrates an unmanned aerial vehicle (UAV) 800, in accordancewith embodiments of the present invention. The UAV may be an example ofa movable object as described herein. The UAV 800 can include apropulsion system having four rotors 802, 804, 806, and 808. Any numberof rotors may be provided (e.g., one, two, three, four, five, six, ormore). The rotors, rotor assemblies, or other propulsion systems of theunmanned aerial vehicle may enable the unmanned aerial vehicle tohover/maintain position, change orientation, and/or change location. Thedistance between shafts of opposite rotors can be any suitable length410. For example, the length 810 can be less than or equal to 2 m, orless than equal to 5 m. In some embodiments, the length 810 can bewithin a range from 40 cm to 1 m, from 10 cm to 2 m, or from 5 cm to 5m. Any description herein of a UAV may apply to a movable object, suchas a movable object of a different type, and vice versa. The UAV may usean assisted takeoff system or method as described herein.

In some embodiments, the movable object can be configured to carry aload. The load can include one or more of passengers, cargo, equipment,instruments, and the like. The load can be provided within a housing.The housing may be separate from a housing of the movable object, or bepart of a housing for a movable object. Alternatively, the load can beprovided with a housing while the movable object does not have ahousing. Alternatively, portions of the load or the entire load can beprovided without a housing. The load can be rigidly fixed relative tothe movable object. Optionally, the load can be movable relative to themovable object (e.g., translatable or rotatable relative to the movableobject). The load can include a payload and/or a carrier, as describedelsewhere herein.

In some embodiments, the movement of the movable object, carrier, andpayload relative to a fixed reference frame (e.g., the surroundingenvironment) and/or to each other, can be controlled by a terminal. Theterminal can be a remote controller device at a location distant fromthe movable object, carrier, and/or payload. The terminal can bedisposed on or affixed to a support platform. Alternatively, theterminal can be a handheld or wearable device. For example, the terminalcan include a smartphone, tablet, laptop, computer, glasses, gloves,helmet, microphone, or suitable combinations thereof. The terminal caninclude a user interface, such as a keyboard, mouse, joystick,touchscreen, or display. Any suitable user input can be used to interactwith the terminal, such as manually entered commands, voice control,gesture control, or position control (e.g., via a movement, location ortilt of the terminal).

The terminal can be used to control any suitable state of the movableobject, carrier, and/or payload. For example, the terminal can be usedto control the position and/or orientation of the movable object,carrier, and/or payload relative to a fixed reference from and/or toeach other. In some embodiments, the terminal can be used to controlindividual elements of the movable object, carrier, and/or payload, suchas the actuation assembly of the carrier, a sensor of the payload, or anemitter of the payload. The terminal can include a wirelesscommunication device adapted to communicate with one or more of themovable object, carrier, or payload.

The terminal can include a suitable display unit for viewing informationof the movable object, carrier, and/or payload. For example, theterminal can be configured to display information of the movable object,carrier, and/or payload with respect to position, translationalvelocity, translational acceleration, orientation, angular velocity,angular acceleration, or any suitable combinations thereof. In someembodiments, the terminal can display information provided by thepayload, such as data provided by a functional payload (e.g., imagesrecorded by a camera or other image capturing device).

Optionally, the same terminal may both control the movable object,carrier, and/or payload, or a state of the movable object, carrierand/or payload, as well as receive and/or display information from themovable object, carrier and/or payload. For example, a terminal maycontrol the positioning of the payload relative to an environment, whiledisplaying image data captured by the payload, or information about theposition of the payload. Alternatively, different terminals may be usedfor different functions. For example, a first terminal may controlmovement or a state of the movable object, carrier, and/or payload whilea second terminal may receive and/or display information from themovable object, carrier, and/or payload. For example, a first terminalmay be used to control the positioning of the payload relative to anenvironment while a second terminal displays image data captured by thepayload. Various communication modes may be utilized between a movableobject and an integrated terminal that both controls the movable objectand receives data, or between the movable object and multiple terminalsthat both control the movable object and receives data. For example, atleast two different communication modes may be formed between themovable object and the terminal that both controls the movable objectand receives data from the movable object.

FIG. 9 illustrates a movable object 900 including a carrier 902 and apayload 904, in accordance with embodiments. Although the movable object900 is depicted as an aircraft, this depiction is not intended to belimiting, and any suitable type of movable object can be used, aspreviously described herein. One of skill in the art would appreciatethat any of the embodiments described herein in the context of aircraftsystems can be applied to any suitable movable object (e.g., an UAV). Insome instances, the payload 904 may be provided on the movable object900 without requiring the carrier 902. The movable object 900 mayinclude propulsion mechanisms 906, a sensing system 908, and acommunication system 910.

The propulsion mechanisms 906 can include one or more of rotors,propellers, blades, engines, motors, wheels, axles, magnets, or nozzles,as previously described. The movable object may have one or more, two ormore, three or more, or four or more propulsion mechanisms. Thepropulsion mechanisms may all be of the same type. Alternatively, one ormore propulsion mechanisms can be different types of propulsionmechanisms. The propulsion mechanisms 906 can be mounted on the movableobject 900 using any suitable means, such as a support element (e.g., adrive shaft) as described elsewhere herein. The propulsion mechanisms906 can be mounted on any suitable portion of the movable object 900,such on the top, bottom, front, back, sides, or suitable combinationsthereof.

In some embodiments, the propulsion mechanisms 906 can enable themovable object 900 to take off vertically from a surface or landvertically on a surface without requiring any horizontal movement of themovable object 900 (e.g., without traveling down a runway). Optionally,the propulsion mechanisms 906 can be operable to permit the movableobject 900 to hover in the air at a specified position and/ororientation. One or more of the propulsion mechanisms 900 may becontrolled independently of the other propulsion mechanisms.Alternatively, the propulsion mechanisms 900 can be configured to becontrolled simultaneously. For example, the movable object 900 can havemultiple horizontally oriented rotors that can provide lift and/orthrust to the movable object. The multiple horizontally oriented rotorscan be actuated to provide vertical takeoff, vertical landing, andhovering capabilities to the movable object 900. In some embodiments,one or more of the horizontally oriented rotors may spin in a clockwisedirection, while one or more of the horizontally rotors may spin in acounterclockwise direction. For example, the number of clockwise rotorsmay be equal to the number of counterclockwise rotors. The rotation rateof each of the horizontally oriented rotors can be varied independentlyin order to control the lift and/or thrust produced by each rotor, andthereby adjust the spatial disposition, velocity, and/or acceleration ofthe movable object 900 (e.g., with respect to up to three degrees oftranslation and up to three degrees of rotation).

The sensing system 908 can include one or more sensors that may sensethe spatial disposition, velocity, and/or acceleration of the movableobject 900 (e.g., with respect to up to three degrees of translation andup to three degrees of rotation). The one or more sensors can includeglobal positioning system (GPS) sensors, motion sensors, inertialsensors, proximity sensors, or image sensors. The sensing data providedby the sensing system 908 can be used to control the spatialdisposition, velocity, and/or orientation of the movable object 900(e.g., using a suitable processing unit and/or control module, asdescribed below). Alternatively, the sensing system 908 can be used toprovide data regarding the environment surrounding the movable object,such as weather conditions, proximity to potential obstacles, locationof geographical features, location of manmade structures, and the like.

The communication system 910 enables communication with terminal 912having a communication system 914 via wireless signals 916. Thecommunication systems 910, 914 may include any number of transmitters,receivers, and/or transceivers suitable for wireless communication. Thecommunication may be one-way communication, such that data can betransmitted in only one direction. For example, one-way communicationmay involve only the movable object 900 transmitting data to theterminal 912, or vice-versa. The data may be transmitted from one ormore transmitters of the communication system 910 to one or morereceivers of the communication system 912, or vice-versa. Alternatively,the communication may be two-way communication, such that data can betransmitted in both directions between the movable object 900 and theterminal 912. The two-way communication can involve transmitting datafrom one or more transmitters of the communication system 910 to one ormore receivers of the communication system 914, and vice-versa.

In some embodiments, the terminal 912 can provide control data to one ormore of the movable object 900, carrier 902, and payload 904 and receiveinformation from one or more of the movable object 900, carrier 902, andpayload 904 (e.g., position and/or motion information of the movableobject, carrier or payload; data sensed by the payload such as imagedata captured by a payload camera). In some instances, control data fromthe terminal may include instructions for relative positions, movements,actuations, or controls of the movable object, carrier and/or payload.For example, the control data may result in a modification of thelocation and/or orientation of the movable object (e.g., via control ofthe propulsion mechanisms 906), or a movement of the payload withrespect to the movable object (e.g., via control of the carrier 902).The control data from the terminal may result in control of the payload,such as control of the operation of a camera or other image capturingdevice (e.g., taking still or moving pictures, zooming in or out,turning on or off, switching imaging modes, change image resolution,changing focus, changing depth of field, changing exposure time,changing viewing angle or field of view). In some instances, thecommunications from the movable object, carrier and/or payload mayinclude information from one or more sensors (e.g., of the sensingsystem 908 or of the payload 904). The communications may include sensedinformation from one or more different types of sensors (e.g., GPSsensors, motion sensors, inertial sensor, proximity sensors, or imagesensors). Such information may pertain to the position (e.g., location,orientation), movement, or acceleration of the movable object, carrierand/or payload. Such information from a payload may include datacaptured by the payload or a sensed state of the payload. The controldata provided transmitted by the terminal 912 can be configured tocontrol a state of one or more of the movable object 900, carrier 902,or payload 904. Alternatively or in combination, the carrier 902 andpayload 904 can also each include a communication module configured tocommunicate with terminal 912, such that the terminal can communicatewith and control each of the movable object 900, carrier 902, andpayload 904 independently.

In some embodiments, the movable object 900 can be configured tocommunicate with another remote device in addition to the terminal 912,or instead of the terminal 912. The terminal 912 may also be configuredto communicate with another remote device as well as the movable object900. For example, the movable object 900 and/or terminal 912 maycommunicate with another movable object, or a carrier or payload ofanother movable object. When desired, the remote device may be a secondterminal or other computing device (e.g., computer, laptop, tablet,smartphone, or other mobile device). The remote device can be configuredto transmit data to the movable object 900, receive data from themovable object 900, transmit data to the terminal 912, and/or receivedata from the terminal 912. Optionally, the remote device can beconnected to the Internet or other telecommunications network, such thatdata received from the movable object 900 and/or terminal 912 can beuploaded to a website or server.

FIG. 10 is a schematic illustration by way of block diagram of a system1000 for controlling a movable object, in accordance with embodiments.The system 1000 can be used in combination with any suitable embodimentof the systems, devices, and methods disclosed herein. The system 1000can include a sensing module 1002, processing unit 1004, non-transitorycomputer readable medium 1006, control module 1008, and communicationmodule 1010.

The sensing module 1002 can utilize different types of sensors thatcollect information relating to the movable objects in different ways.Different types of sensors may sense different types of signals orsignals from different sources. For example, the sensors can includeinertial sensors, GPS sensors, proximity sensors (e.g., lidar), orvision/image sensors (e.g., a camera). The sensing module 1002 can beoperatively coupled to a processing unit 1004 having a plurality ofprocessors. In some embodiments, the sensing module can be operativelycoupled to a transmission module 1012 (e.g., a Wi-Fi image transmissionmodule) configured to directly transmit sensing data to a suitableexternal device or system. For example, the transmission module 1012 canbe used to transmit images captured by a camera of the sensing module1002 to a remote terminal.

The processing unit 1004 can have one or more processors, such as aprogrammable processor (e.g., a central processing unit (CPU)). Theprocessing unit 1004 can be operatively coupled to a non-transitorycomputer readable medium 1006. The non-transitory computer readablemedium 1006 can store logic, code, and/or program instructionsexecutable by the processing unit 1004 for performing one or more steps.The non-transitory computer readable medium can include one or morememory units (e.g., removable media or external storage such as an SDcard or random access memory (RAM)). In some embodiments, data from thesensing module 1002 can be directly conveyed to and stored within thememory units of the non-transitory computer readable medium 1006. Thememory units of the non-transitory computer readable medium 1006 canstore logic, code and/or program instructions executable by theprocessing unit 1004 to perform any suitable embodiment of the methodsdescribed herein. For example, the processing unit 1004 can beconfigured to execute instructions causing one or more processors of theprocessing unit 1004 to analyze sensing data produced by the sensingmodule. The memory units can store sensing data from the sensing moduleto be processed by the processing unit 1004. In some embodiments, thememory units of the non-transitory computer readable medium 1006 can beused to store the processing results produced by the processing unit1004.

In some embodiments, the processing unit 1004 can be operatively coupledto a control module 1008 configured to control a state of the movableobject. For example, the control module 1008 can be configured tocontrol the propulsion mechanisms of the movable object to adjust thespatial disposition, velocity, and/or acceleration of the movable objectwith respect to six degrees of freedom. Alternatively or in combination,the control module 1008 can control one or more of a state of a carrier,payload, or sensing module.

The processing unit 1004 can be operatively coupled to a communicationmodule 1010 configured to transmit and/or receive data from one or moreexternal devices (e.g., a terminal, display device, or other remotecontroller). Any suitable means of communication can be used, such aswired communication or wireless communication. For example, thecommunication module 1010 can utilize one or more of local area networks(LAN), wide area networks (WAN), infrared, radio, WiFi, point-to-point(P2P) networks, telecommunication networks, cloud communication, and thelike. Optionally, relay stations, such as towers, satellites, or mobilestations, can be used. Wireless communications can be proximitydependent or proximity independent. In some embodiments, line-of-sightmay or may not be required for communications. The communication module1010 can transmit and/or receive one or more of sensing data from thesensing module 1002, processing results produced by the processing unit1004, predetermined control data, user commands from a terminal orremote controller, and the like.

The components of the system 1000 can be arranged in any suitableconfiguration. For example, one or more of the components of the system1000 can be located on the movable object, carrier, payload, terminal,sensing system, or an additional external device in communication withone or more of the above. Additionally, although FIG. 10 depicts asingle processing unit 1004 and a single non-transitory computerreadable medium 1006, one of skill in the art would appreciate that thisis not intended to be limiting, and that the system 1000 can include aplurality of processing units and/or non-transitory computer readablemedia. In some embodiments, one or more of the plurality of processingunits and/or non-transitory computer readable media can be situated atdifferent locations, such as on the movable object, carrier, payload,terminal, sensing module, additional external device in communicationwith one or more of the above, or suitable combinations thereof, suchthat any suitable aspect of the processing and/or memory functionsperformed by the system 1000 can occur at one or more of theaforementioned locations.

While preferred embodiments of the present invention have been shown anddescribed herein, it will be obvious to those skilled in the art thatsuch embodiments are provided by way of example only. Numerousvariations, changes, and substitutions will now occur to those skilledin the art without departing from the invention. It should be understoodthat various alternatives to the embodiments of the invention describedherein may be employed in practicing the invention. It is intended thatthe following claims define the scope of the invention and that methodsand structures within the scope of these claims and their equivalents becovered thereby.

What is claimed is:
 1. An unmanned aerial vehicle (UAV) comprising: areceiver onboard the UAV configured to receive a UAV mode signal,wherein said signal is indicative of whether the UAV is set to be in aflight mode or a simulation mode; a flight control system configured to:receive flight control data from a remote controller; generate flightdata in response to the flight control data; and instruct, based on theUAV mode signal, one or more propulsion units of the UAV (1) to activateand permit flight of the UAV in a real environment in accordance withthe flight data when the UAV is in the flight mode, or (2) to remaindormant and not permit flight of the UAV in the real environment whenthe UAV is in the simulation mode; and an inertial measurement unitconfigured to (1) receive virtual sensor data when the UAV is in thesimulation mode, (2) generate flight state information based on thevirtual sensor data, and (3) communicate the flight state information tothe flight control system, wherein the virtual sensor data is generatedby one or more virtual sensors based on physical simulation dataprovided to said virtual sensors, and wherein the physical simulationdata is provided by a physical model in response to the flight data. 2.The UAV of claim 1, wherein the UAV mode signal is provided from adisplay device comprising a visual display, wherein the visual displayis configured to show simulated flight state information of the UAV whenthe UAV is in the simulation mode.
 3. The UAV of claim 1, wherein theUAV mode signal is provided from the remote controller.
 4. The UAV ofclaim 1, wherein the UAV mode signal is provided by a user interactingwith hardware of the UAV, and wherein said hardware comprises aswitching button located on the UAV.
 5. The UAV of claim 1, wherein theUAV has the flight mode as a default, and the UAV mode signal indicatesa change from the flight mode to the simulation mode.
 6. The UAV ofclaim 1, wherein the UAV mode signal is provided to an output switcherconfigured to determine whether the flight data is or is notcommunicated to the one or more propulsion units.
 7. The UAV of claim 6,wherein the output switcher communicates the flight data to the one ormore propulsion units when the UAV is in the flight mode.
 8. The UAV ofclaim 6, wherein the output switcher communicates the flight data to aphysical model comprising physical parameter information about the UAV.9. The UAV of claim 1, wherein the physical simulation data isrepresentative of the real environment in which the UAV is located oroperated.
 10. The UAV of claim 8, wherein the physical parameterinformation about the UAV includes at least one of the following: (1)dimensions of the UAV, or (2) aerodynamic properties of the UAV.
 11. TheUAV of claim 1, wherein the inertial measurement unit is configured toreceive real sensor data, generate flight state information from thereal sensor data, and communicate the flight state information to theflight control system.
 12. The UAV of claim 1, wherein the flightcontrol system communicates simulated flight data to a display devicecomprising a visual display when the UAV is in the simulation mode. 13.A method of operating an unmanned aerial vehicle (UAV), said methodcomprising: receiving, at a communication unit onboard the UAV, a UAVmode signal indicative of whether the UAV is set to be in a flight modeor a simulation mode; receiving, at a flight control system, flightcontrol data from a remote controller; generating, at the flight controlsystem, flight data in response to the flight control data; based on theUAV mode signal: (1) activating one or more propulsion units of the UAVin accordance with the flight data when the UAV is in the flight mode,thereby permitting flight of the UAV in a real environment; or (2)keeping the one or more propulsion units dormant and not permittingflight of the UAV in the real environment when the UAV is in thesimulation mode; receiving, at an inertial measurement unit, virtualsensor data when the UAV is in the simulation mode, wherein the virtualsensor data is generated by one or more virtual sensors based onphysical simulation data provided to said virtual sensors, and whereinthe physical simulation data is provided by a physical mode in responseto the flight data; generating, at the inertial measurement unit, flightstate information based on the virtual sensor data; and communicatingthe flight state information by the inertial measurement unit to theflight control system.
 14. An unmanned aerial vehicle (UAV) comprising:a receiver onboard the UAV configured to receive a UAV mode signal,wherein said signal is indicative of whether the UAV is set to be in (1)a flight mode permitting flight of the UAV in a real environment or (2)a simulation mode; one or more sensors configured to collect real sensordata of the real environment; a flight control system configured to:receive flight control data from a remote controller; and generateflight data in response to the flight control data and based on the UAVmode signal, wherein the flight data is generated from (1) the realsensor data when the UAV is in the flight mode, or (2) virtual sensordata generated by one or more virtual sensors based on physicalsimulation data provided to said virtual sensors when the UAV is in thesimulation mode, and wherein the physical simulation data is provided bya physical model in response to the flight data; and an inertialmeasurement unit configured to (1) receive the real sensor data when theUAV is in the flight mode, and receive the virtual sensor data when theUAV is in the simulation mode, (2) generate flight state informationbased on the real sensor data or the virtual sensor data that isreceived, and (3) communicate the flight state information to the flightcontrol system.
 15. The UAV of claim 14, wherein the UAV mode signal isprovided from a display device comprising a visual display, and whereinthe visual display is configured to show simulated flight stateinformation of the UAV when the UAV is in the simulation mode.
 16. TheUAV of claim 14, wherein the UAV mode signal is provided from the remotecontroller.
 17. The UAV of claim 14, wherein the UAV mode signal isprovided by a user interacting with hardware of the UAV, and whereinsaid hardware comprises a switching button located on the UAV.
 18. TheUAV of claim 14, wherein the UAV has the flight mode as a default, andthe UAV mode signal indicates a change from the flight mode to thesimulation mode.
 19. The UAV of claim 14, wherein the UAV mode signal isprovided to an output switcher configured to determine whether theflight data is or is not communicated to the one or more propulsionunits.
 20. The UAV of claim 19, wherein the output switcher communicatesthe flight data to the one or more propulsion units when the UAV is inthe flight mode.
 21. The UAV of claim 19, wherein the output switchercommunicates the flight data to a physical model comprising physicalparameter information about the UAV.
 22. The UAV of claim 14, whereinthe physical simulation data is representative of the real environmentin which the UAV is located or operated.
 23. The UAV of claim 21,wherein the physical parameter information about the UAV includes atleast one of the following: (1) dimensions of the UAV, or (2)aerodynamic properties of the UAV.
 24. The UAV of claim 14, wherein theflight control system communicates simulated flight data to a displaydevice comprising a visual display when the UAV is in the simulationmode.
 25. A method of operating an unmanned aerial vehicle (UAV), saidmethod comprising: receiving, at a communication unit onboard the UAV, aUAV mode signal indicative of whether the UAV is set to be in (1) aflight mode permitting flight of the UAV in a real environment or (2) asimulation mode; receiving, at a flight control system, flight controldata from a remote controller; generating, at the flight control system,flight data in response to the flight control data and based on the UAVmode signal, wherein the flight data is generated from (1) real sensordata of the real environment collected by one or more sensors when theUAV is in the flight mode, or (2) virtual sensor data generated by oneor more virtual sensors based on physical simulation data provided tosaid virtual sensors when the UAV is in the simulation mode, and whereinthe physical simulation data is provided by a physical model in responseto the flight data; receiving, at an inertial measurement unit, the realsensor data when the UAV is in the flight mode, and virtual sensor datawhen the UAV is in the simulation mode; generating, at the inertialmeasurement unit, flight state information based on the real sensor dataor the virtual sensor data that is received; and communicating theflight state information by the inertial measurement unit to the flightcontrol system.